有没有办法在整行中找到特定的记录?
这是我的文件:
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