Удалить строку, которая содержит более 1 конкретной строки - PullRequest
0 голосов
/ 07 апреля 2011

Я использую '/'"$name"'/d' для удаления строки, содержащей переменную имени пользователя. Но я хочу удалить строку, содержащую $name и $surname вместе. Как я могу изменить этот '/'"$name"'/d' код?

Ответы [ 4 ]

1 голос
/ 08 апреля 2011

Можно сделать это с помощью sed следующим образом:

cat input | sed '/\('"$name"'.*'"$surname"'\)\|\('"$surname"'.*'"$name"'\)/d'
0 голосов
/ 08 апреля 2011

Рубин (1,9 +)

$ ruby -ne 'next if /'"$name"'/ && /'"$surname"'/;print' file
0 голосов
/ 07 апреля 2011
awk '/name/ && /surname/ {next} 1' filename

или, чтобы передать значения из оболочки в awk

awk -v first=$name -v last=$surname '$0 ~ first && $0 ~ last {next} 1' filename
0 голосов
/ 07 апреля 2011

проще всего будет

cat input | egrep -v "$name.*$surname" | egrep -v "$surname.*$name" > output
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...