Вставить строку в предыдущей и следующей строке конкретной фразы / текста
Я хочу отредактировать кучу файлов в папке, используя скрипт / команду следующим образом.
До:
.
.
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 записать измененный поток обратно в файл.