我一直在尝试创建一个正则表达式公式,它允许我只处理文本文件中特定列的文本。
示例:
John Milanos
Anne Silverwood
Tina Fastman
我知道awk -F ' ' '{print $2}'
将打印所需的列,因此允许我将文本传递给第二个grep
命令。但是,我的最终输出将只打印姓氏。我想打印整行,但只查找姓氏的模式。
如果我跑:
awk -F ' ' '{print $2}' listofnames.txt | grep -v 'wood'
我最终会:
Milanos
Fastman
我想要的输出是全名列表:
John Milanos
Tina Fastman
答案 0 :(得分:1)
您可以在awk中匹配正则表达式:
awk '$2 !~ /wood/' listofnames.txt
!~
表示"不匹配"。
答案 1 :(得分:0)
使用grep:
$ echo '
John Milanos
Anne Silverwood
Tina Fastman' | grep -Ev '^\S+\s+\S*wood'
John Milanos
Tina Fastman
答案 2 :(得分:-1)
这个正则表达式怎么样:
\b\S+\s+(.*wood.*)
(字边界,至少一个非空白,至少一个空白,任何东西,“木头”,其他任何东西) 大括号在那里,所以你可以捕获姓氏......