Как найти и заменить переменную в Linux?

Как найти и заменить переменную в Linux?

У меня есть куча файлов с большим количеством строк, настроенных следующим образом:

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

Я хочу выполнить поиск и замену, чтобы в итоге получить следующее, сохранив и повторно вставив 4 цифры после VACи удалив конечную часть числа VAC:

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

Есть ли способ сделать это для всех файлов одновременно (их VACколичество будет разным, поэтому его нужно сохранить как переменную), желательно в оболочке Bash?

Я предполагаю, что я мог бы сделать это и в «Notepad++», используя регулярные выражения, но я думаю, что скрипт оболочки был бы предпочтительнее, поскольку я мог бы обработать все файлы как пакет.

решение1

Используйте sedкоманду:

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

Он заменит ,VAC####-#...#,на ,VAC####,.

Связанный контент