Удалить символ «#» и распечатать остальные (в том числе без символа «#») из файла конфигурации - PullRequest
0 голосов
/ 01 июля 2019

ОЖИДАЕТСЯ:

Input:
###
# comment
###
var1=/opt
#var2=/app

Output:
comment
var1=/opt
var2=/app

Я пробовал запустить несколько кодов, но они не печатались в текущем порядке:

grep "var1" cf.cfg
grep "#" cf.cfg | cut -d "#" -f2

Output using these codes:
var1=/opt

comment

var2=/app

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Попробуйте команду ниже.

sed '/^[ #]*$/d;s/^[ #]*//' cf.cfg  

Удаляет ..
Строка, содержащая только # или пробел любой комбинации.
От начала строки, # или пробел любойкомбинация, включая строку как # # comment.

1 голос
/ 01 июля 2019

Вы можете использовать

sed -e 's/#\s*//;/^\s*$/d' yourfile

Это удалит символ # и последующие пробелы (s/#\s*//) и напечатает строки, содержащие непробельные символы (/^\s*$/d).

В случае строки вида

var=1 # this is a comment

в приведенной выше строке будет напечатано

Если вы хотите удалить символы до #, вы можете использовать

sed -e 's/^[^#]*#\+\s*//;/^\s*$/d' yourfile
var=1 this is a comment

Это удалит весь текст до первого #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...