🐧 Как раскомментировать строки в файле с помощью SED на Linux

by itisgood

В этом руководстве вы узнаете, как раскомментировать строки в файле с помощью SED на Linux.

По словам man sed, Sed –  stream editor.

Чтобы продемонстрировать, как раскомментировать строки в файле с помощью sed в linux, возьмем, к примеру, у вас есть файл с приведенным ниже содержимым:

cat /tmp/lines
This is line1
#This is line2
This is line3
#line4
This is line5
This is line6
#My line7
This is line8
This is line9
This is line10
This is line11
Your is line12
This is line13
This is line14
#Their line15
This is line16
This is line17
#This is line18
This is line19
This is line20

Был закомментирован ряд строк (# в начале).

Как раскомментировать строку по определенным шаблонам, используя SED на Linux

Чтобы раскомментировать определенную строку с определенным шаблоном с помощью sed, просто выполните команду:

sed '/pattern/s/^#//' -i file

Вышеупомянутая команда раскомментирует только первую совпадающую строку.

Замените pattern соответствующим ключевым словом строки и файла с определенным именем файла.

Если файл содержит несколько строк, соответствующих шаблону, и все они закомментированы, и вы хотите раскомментировать их все, убедитесь, что вы запускаете команду sed глобально, используя операцию g:

sed '/pattern/s/^#//g' -i file

Например, чтобы раскомментировать строку с шаблоном This, выполните команду;

sed '/This/s/^#//' -i /tmp/lines

Если вы хотите запустить set в режиме пробного запуска без фактического применения изменений к встроенному файлу, опустите параметр -i.

Приведенная выше команда раскомментирует только первую закомментированную строку, соответствующую указанному шаблону, которая в данном случае является второй строкой, #This is line2.

cat /tmp/lines
This is line1
This is line2
This is line3
#line4
This is line5
This is line6
#My line7
This is line8
This is line9
This is line10
This is line11
Your is line12
This is line13
This is line14
#Their line15
This is line16
This is line17
#This is line18
This is line19
This is line20

Чтобы раскомментировать все закомментированные строки в файле, соответствующем шаблону, This, запустите;

sed '/This/s/^#//g' -i /tmp/lines

Если вы хотите создать резервную копию исходного файла перед применением изменений, используйте параметр -i. <extension> вместо -i, где <extension> может быть bak, original, old или любым другим префиксом для добавления к файлу резервной копии .

sed '/This/s/^#//g' -i.bak /tmp/lines

Как раскомментировать конкретные строки в файле с помощью SED на Linux

Как раскомментировать конкретные строки в файле с помощью SED на Linux

Также можно использовать sed для раскомментирования определенного номера строки в файле.

В файле при использовании редактора vim вы можете отображать номера строк, нажав ESC и введя: set number;

Так, например, вы хотите раскомментировать строку номер 4 в файле, надо запустить sed следующим образом:

sed '4s/^#//' /tmp/lines
This is line1
This is line2
This is line3
line4
This is line5
This is line6
#My line7
...
Чтобы применить изменения в файле, используйте опцию -i, как уже было показано выше.
This is line1
	This is line2
This is line3
    line4
This is line5
This is line6
#My line7

Отступ сохраняется.

И это знаменует финалу нашего руководства о том, как раскомментировать строки в файле с помощью SED на Linux.

Если у вас есть еще несколько примеров, не стесняйтесь оставлять комментарии.

 

You may also like

Leave a Comment