使用 AWK 查找单词

使用 AWK 查找单词

有没有办法在整行中找到特定的记录?

这是我的文件:

one two three four
two three four five
three four five six
four five six seven
five six seven eight

如何搜索包含两条的所有行?

答案1

awk '/(^| )two( |$)/' ...

那里的小组(..)试图确保我们只匹配“two”。在前面,它必须是行首或空格,在结尾,它必须是空格或行尾。简而言之,我们确保字段等于 two。

嗯显然你也可以使用词边界标签(看起来稍微优雅一些​​,但便携性较差):

awk '/\<two\>' ...

不确定您的具体用例是什么(我认为不是数字),您可能会同样满意,grep -E '\<two\>' ...awk如果您需要做其他事情,它会给您更多的灵活性。

答案2

对于这个简单的任务你也可以使用grep

grep  'two' /path/to/file

输出:

one two three four
two three four five

如果“two”不在行首,则获取它:

grep ' two ' /path/to/file->one two three four

或使用元字符仅在行首获取它:

grep '^two' /path/to/file->two three four five

相关内容