Wie kann ich in Linux eine Variable suchen und ersetzen?

Wie kann ich in Linux eine Variable suchen und ersetzen?

Ich habe einen Haufen Dateien mit vielen Zeilen, die wie folgt konfiguriert sind:

what,r-crq,What,What,VAC5700-035080,What
i,pns11,I,I,VAC5700-035090,I
do,vdd,did,did,VAC5700-035100,did

Ich möchte eine Suche und Ersetzung durchführen und dabei Folgendes erhalten, wobei die 4 Zahlen danach gespeichert und erneut eingefügt VACund der nachfolgende Teil der VACZahl entfernt wird:

what,r-crq,What,What,VAC5700,What
i,pns11,I,I,VAC5700,I
do,vdd,did,did,VAC5700,did

Gibt es eine Möglichkeit, dies für alle Dateien gleichzeitig zu tun (die VACAnzahl variiert und muss daher als Variable gespeichert werden), vorzugsweise in der Bash-Shell?

Ich gehe davon aus, dass ich dies mithilfe regulärer Ausdrücke auch in „Notepad++“ tun könnte, aber ich denke, das Shell-Skript wäre vorzuziehen, da ich alle Dateien in einem Stapel verarbeiten könnte.

Antwort1

Verwenden Sie den sedBefehl:

sed -e 's|,VAC\([0-9][0-9][0-9][0-9]\)-[0-9]*,|,VAC\1,|' inFile > outFile

Es wird ,VAC####-#...#,durch ersetzt ,VAC####,.

verwandte Informationen