2011-04-07 109 views

回答

0

最簡單的將是

cat input | egrep -v "$name.*$surname" | egrep -v "$surname.*$name" > output 
+0

無用的貓用。和一個awk命令可以完成這個工作 – kurumi 2011-04-08 12:02:37

+0

@kurumi,請看看OP在問題中的記錄 - 這個愚蠢的解決方案可能會讓他無法複製和粘貼模式。 – mvds 2011-04-08 12:23:00

0
awk '/name/ && /surname/ {next} 1' filename 

,或者從外殼的值傳遞到awk的

awk -v first=$name -v last=$surname '$0 ~ first && $0 ~ last {next} 1' filename 
1

用sed可以這樣做:

cat input | sed '/\('"$name"'.*'"$surname"'\)\|\('"$surname"'.*'"$name"'\)/d' 
+0

貓的無用用途 – kurumi 2011-04-08 12:07:19

+0

取決於您是否有文件或流。這個問題毫無意義。我們甚至不知道John是否使用了一個文件流。 – 2011-04-08 12:22:23

+0

'貓'也不用於流。 – kurumi 2011-04-08 12:26:30

0

Ruby(1.9+)

$ ruby -ne 'next if /'"$name"'/ && /'"$surname"'/;print' file