как применить несколько команд regex-find & replace к одному текстовому файлу?

Предположительно, вы хотите удалить все строки комментариев, (начинающиеся с любого количества пробелов, за которыми следует #), кроме челки -, которая должна находиться в первой строке для обнаружения..

Вы можете использовать ту же самую команду подстановки, если вы ограничите ее рассмотрением только всего, начиная со строки 2; в нотации sedэто диапазон 2,$. Вы ограничиваете команды sedдиапазоном, добавляя к ним префикс этого диапазона :

.
sed "2,${/^\(\\s\)*\\#/d}"

или с кавычками оболочки, которые позволяют использовать более читаемые обратные пробелы и без ненужной группировки регулярных выражений:

sed -e '2,${/^\s*#/d}'

Пример

Вход:

#!/path/to/a/shebang-command
# This is the first comment

command 1
  # another comment
  command 2
# Final comment

Выход:

#!/path/to/a/shebang-command

command 1
  command 2
1
10.08.2019, 11:23
1 ответ

Вы можете использовать потоковый редакторsed

пример

sed -e 's/search1/replace1/' -e 's/search2/replace2/'и так далее

0
28.01.2020, 00:03

Теги

Похожие вопросы