MilesTEG1 | ... avec des variables
Hello,
Je cherche à modifier un fichier en remplaçant un groupe de ligne (successives) par un autre groupe de ligne.
Je n'arrive pas à faire fonctionner la commande sed avec mes variables durant mes tests.
Du coup, je cherche de l'aide d'un "cador" de la commande sed.
J'ai mis 3 fichiers ici : https://transfert.free.fr/LGCVeWn
Je colle ici le code pour montrer ce que je veux faire, mais il faut prendre les fichiers, car ils ont des tabulations qu'il faut conserver.
Fichier partie_a_remplacer.js :
{
xtype: 'box',
colspan: 2,
padding: '0 0 20 0',
},
{
itemId: 'cpus',
colspan: 2,
printBar: false,
title: gettext('CPU(s)'),
textField: 'cpuinfo',
renderer: Proxmox.Utils.render_cpu_model,
value: '',
},
{
itemId: 'kversion',
colspan: 2,
title: gettext('Kernel Version'),
printBar: false,
textField: 'kversion',
value: '',
},
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: '',
}, |
Fichier texte_de_remplacement.js :
{
xtype: 'box',
colspan: 2,
padding: '0 0 10 0',
},
{
itemId: 'cpus',
colspan: 2,
printBar: false,
title: gettext('CPU(s)'),
textField: 'cpuinfo',
renderer: Proxmox.Utils.render_cpu_model,
value: '',
},
{
itemId: 'kversion',
colspan: 2,
title: gettext('Kernel Version'),
printBar: false,
textField: 'kversion',
value: '',
},
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: '',
},
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU Thermal State'),
textField: 'thermalstate',
renderer: function (value) {
let objValue = JSON.parse(value);
let core0 = objValue["coretemp-isa-0000"]["Core 0"]["temp2_input"];
let core1 = objValue["coretemp-isa-0000"]["Core 1"]["temp3_input"];
let core2 = objValue["coretemp-isa-0000"]["Core 2"]["temp4_input"];
let core3 = objValue["coretemp-isa-0000"]["Core 3"]["temp5_input"];
return `Core 0: ${core0}°C | Core 1: ${core1}°C | Core 2: ${core2}°C | Core 3: ${core3}°C`;
}
}, |
Fichier extrait_du_fichier_de_base.js
Ext.define('PVE.node.StatusView', {
extend: 'Proxmox.panel.StatusView',
alias: 'widget.pveNodeStatus',
height: 300,
bodyPadding: '15 5 15 5',
layout: {
type: 'table',
columns: 2,
tableAttrs: {
style: {
width: '100%',
},
},
},
defaults: {
xtype: 'pmxInfoWidget',
padding: '0 10 5 10',
},
items: [
{
itemId: 'cpu',
iconCls: 'fa fa-fw pmx-itype-icon-processor pmx-icon',
title: gettext('CPU usage'),
valueField: 'cpu',
maxField: 'cpuinfo',
renderer: Proxmox.Utils.render_node_cpu_usage,
},
{
itemId: 'wait',
iconCls: 'fa fa-fw fa-clock-o',
title: gettext('IO delay'),
valueField: 'wait',
rowspan: 2,
},
{
itemId: 'load',
iconCls: 'fa fa-fw fa-tasks',
title: gettext('Load average'),
printBar: false,
textField: 'loadavg',
},
{
xtype: 'box',
colspan: 2,
padding: '0 0 20 0',
},
{
iconCls: 'fa fa-fw pmx-itype-icon-memory pmx-icon',
itemId: 'memory',
title: gettext('RAM usage'),
valueField: 'memory',
maxField: 'memory',
renderer: Proxmox.Utils.render_node_size_usage,
},
{
itemId: 'ksm',
printBar: false,
title: gettext('KSM sharing'),
textField: 'ksm',
renderer: function(record) {
return Proxmox.Utils.render_size(record.shared);
},
padding: '0 10 10 10',
},
{
iconCls: 'fa fa-fw fa-hdd-o',
itemId: 'rootfs',
title: '/ ' + gettext('HD space'),
valueField: 'rootfs',
maxField: 'rootfs',
renderer: Proxmox.Utils.render_node_size_usage,
},
{
iconCls: 'fa fa-fw fa-refresh',
itemId: 'swap',
printSize: true,
title: gettext('SWAP usage'),
valueField: 'swap',
maxField: 'swap',
renderer: Proxmox.Utils.render_node_size_usage,
},
{
xtype: 'box',
colspan: 2,
padding: '0 0 20 0',
},
{
itemId: 'cpus',
colspan: 2,
printBar: false,
title: gettext('CPU(s)'),
textField: 'cpuinfo',
renderer: Proxmox.Utils.render_cpu_model,
value: '',
},
{
itemId: 'kversion',
colspan: 2,
title: gettext('Kernel Version'),
printBar: false,
textField: 'kversion',
value: '',
},
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: '',
},
],
updateTitle: function() {
var me = this;
var uptime = Proxmox.Utils.render_uptime(me.getRecordValue('uptime'));
me.setTitle(me.pveSelNode.data.node + ' (' + gettext('Uptime') + ': ' + uptime + ')');
},
initComponent: function() {
let me = this;
let stateProvider = Ext.state.Manager.getProvider();
let repoLink = stateProvider.encodeHToken({
view: "server",
rid: `node/${me.pveSelNode.data.node}`,
ltab: "tasks",
nodetab: "aptrepositories",
});
me.items.push({
xtype: 'pmxNodeInfoRepoStatus',
itemId: 'repositoryStatus',
product: 'Proxmox VE',
repoLink: `#${repoLink}`,
});
me.callParent();
},
}); |
J'ai essayé ceci :
a_rechercher="\t xtype: 'box',\n\t colspan: 2,\n\t padding: '0 0 20 0',\n\t\},\n\t\{\n\t itemId: 'cpus',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('CPU(s)'),\n\t textField: 'cpuinfo',\n\t renderer: Proxmox.Utils.render_cpu_model,\n\t value: '',\n\t\},\n\t\{\n\t itemId: 'kversion',\n\t colspan: 2,\n\t title: gettext('Kernel Version'),\n\t printBar: false,\n\t textField: 'kversion',\n\t value: '',\n\t\},\n\t\{\n\t itemId: 'version',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('PVE Manager Version'),\n\t textField: 'pveversion',\n\t value: '',\n\t\},"
a_remplacer="\t xtype: 'box',\n\t colspan: 2,\n\t padding: '0 0 10 0',\n\t\},\n\t\{\n\t itemId: 'cpus',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('CPU(s)'),\n\t textField: 'cpuinfo',\n\t renderer: Proxmox.Utils.render_cpu_model,\n\t value: '',\n\t\},\n\t\{\n\t itemId: 'kversion',\n\t colspan: 2,\n\t title: gettext('Kernel Version'),\n\t printBar: false,\n\t textField: 'kversion',\n\t value: '',\n\t\},\n\t\{\n\t itemId: 'version',\n\t colspan: 2,\n\t printBar: false,\n\t title: gettext('PVE Manager Version'),\n\t textField: 'pveversion',\n\t value: '',\n\t\},\n\t\{\n\t\titemId: 'thermal',\n\t\tcolspan: 2,\n\t\tprintBar: false,\n\t\ttitle: gettext('CPU Thermal State'),\n\t\ttextField: 'thermalstate',\n\t\trenderer: function (value) \{\n\t\t\tlet objValue = JSON.parse(value);\n\t\t\tlet core0 = objValue\[\"coretemp-isa-0000\"\]\[\"Core 0\"\]\[\"temp2_input\"\];\n\t\t\tlet core1 = objValue\[\"coretemp-isa-0000\"\]\[\"Core 1\"\]\[\"temp3_input\"\];\n\t\t\tlet core2 = objValue\[\"coretemp-isa-0000\"\]\[\"Core 2\"\]\[\"temp4_input\"\];\n\t\t\tlet core3 = objValue\[\"coretemp-isa-0000\"\]\[\"Core 3\"\]\[\"temp5_input\"\];\n\t\t\treturn \`Core 0: \$\{core0\}°C \| Core 1: \$\{core1\}°C \| Core 2: \$\{core2\}°C \| Core 3: \$\{core3\}°C\`;\n\t\t\}\n\t\},"
sed "s/$a_rechercher/$a_remplacer/g" ./extrait_du_fichier_de_base.js > tmp.js
|
Mais ça ne fait rien.
En gros dès que ça doit gérer un saut de ligne, ça ne fonctionne plus.
Si quelqu'un sait comment faire la modification via une commande sed, je suis preneur.
PS : c'est sous debian 12 + proxmox.
Merci pour votre aide ---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
|