Я использую '/'"$name"'/d' для удаления строки, содержащей переменную имени пользователя. Но я хочу удалить строку, содержащую $name и $surname вместе. Как я могу изменить этот '/'"$name"'/d' код?
'/'"$name"'/d'
$name
$surname
Можно сделать это с помощью sed следующим образом:
cat input | sed '/\('"$name"'.*'"$surname"'\)\|\('"$surname"'.*'"$name"'\)/d'
Рубин (1,9 +)
$ ruby -ne 'next if /'"$name"'/ && /'"$surname"'/;print' file
awk '/name/ && /surname/ {next} 1' filename
или, чтобы передать значения из оболочки в awk
awk -v first=$name -v last=$surname '$0 ~ first && $0 ~ last {next} 1' filename
проще всего будет
cat input | egrep -v "$name.*$surname" | egrep -v "$surname.*$name" > output