7

У меня есть куча файлов с множеством строк, настроенных так:

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 ответ1

7

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .