Заменить строку с помощью команды sed

Есть файл sample.txt . Содержимое этого файла

..some content...
### [http]
# [http]

. Поэтому мне нужно удалить # перед [http] , чтобы окончательный измененный файл выглядел как

..some content...
### [http]
[http]

. Я хочу сделать это с помощью команда sed . Так какая будет точная команда?

-1
02.05.2017, 17:23
2 ответа

Попробуйте это

sed -i 's/^# //' file1

Таким образом, он будет искать # и пробел в начале каждой строки и заменять на ноль.

Если вы хотите заменить только # [http] на [http], используйте

sed -i 's/^# \[http]/[http]/' file1
2
28.01.2020, 05:07

sed подход, удаляет # только перед подстрокой [http]:

sed -i 's/^# *\(\[http]\)/\1/' file

Вывод:

..some content...
### [http]
[http]

\ 1 - указывает на первую захваченную группу (...)

1
28.01.2020, 05:07

Теги

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