Вставить строку в предыдущей и следующей строке конкретной фразы / текста

Я хочу отредактировать кучу файлов в папке, используя скрипт / команду следующим образом.

До:

.
.
upc_barrier
.
.

После вставки:

.
.
start = clock();
upc_barrier
end  = clock() ;
.
.
.

Кто-нибудь из вас может мне помочь?

2 ответа

Решение

Если вы не против использовать perl

perl -pi -e "s/upc_barrier/start = clock();\nupc_barrier\nend  = clock() ;/g" ALL_FILES

Версия sed:

sed -i 's/\(upc_barrier\)/start = clock\(\);\n\1\nend = clock\(\);/' FILES

Очевидно, замените ФАЙЛЫ теми файлами, с которыми вы хотите работать. Оператор -i говорит sed записать измененный поток обратно в файл.

Другие вопросы по тегам