I have в file that contains the following lines:
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
How хан I remove the line "SUKsoft:"?
This line could be in any нравится of the file (beginning эксперт it is now, or in the middle).
Is there в command to do this?
grep
поиски строк, которые удовлетворяют шаблон. grep -v
отбрасывания строки, которые удовлетворяют шаблон.
grep -v '^SUKsoft: * шаблон: строки, которые запускаются (^
) с SUKsoft:
, возможно сопровождаемый пробелами, но ничем иным до конца строки ($
).
шаблон: строки, которые запускаются (^
) с SUKsoft:
, возможно сопровождаемый пробелами, но ничем иным до конца строки ($
).
К удаляют использование строки
sed -i '/SUKsoft:\s*$/d' your_file
Пример
% cat foo
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% sed -i '/SUKsoft:\s*$/d' foo
% cat foo
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
Вот шаги для удаления желаемой строки:
$ sed 's/SUKsoft: *$//' file.txt
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
я принимаю file.txt
, содержит строки.
Или,
$ sed 's/SUKsoft: *$//; /^$/d' file.txt
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
это не оставляет никакой строка пробела .
Для редактирования в файле можно использовать,
sed -i 's/SUKsoft: *$//' file.txt
или
sed -i 's/SUKsoft: *$//; /^$/d' file.txt
согласно потребности.
Видят ответ A.B, где он сделан более компактным способом. Благодаря Подстановочный знак .
Оценка от Вашего post't необработанный источник нет никакого пространства или последовательности пробелов после "SUKsoft": однако только, чтобы быть на безопасной стороне эта команда будет заботиться о тех если существующий.
Используя Perl:
perl -ne '!/^SUKsoft: *$/&&print' input
!/^SUKsoft:$/&&print
: если текущая строка не соответствует шаблону ^SUKsoft: *$
, который соответствует строке, запускающейся с SUKsoft:
, строка, сопровождаемая нулем или большим количеством пробелов, печатает строку; % cat input
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% perl -ne 'print unless /^SUKsoft: *$/' input
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW