Grep匹配仅在“:”之前

时间:2019-02-06 22:36:52

标签: grep

你好,我如何只在:标记之前匹配?

如果我运行grep test1 file,它将显示所有三行。

test1:x:29688:test1,test2
test2:x:22611:test1
test3:x:25163:test1,test3

但是我想得到一个输出test1:x:29688:test1,test2

我将不胜感激。

3 个答案:

答案 0 :(得分:2)

如果所需行始终以test1开头,则可以执行以下操作:

grep '^test1' file

如果它总是后面跟随:,但其他(可能)不匹配,则可以将其作为模式的一部分:

grep 'test1:' file

答案 1 :(得分:2)

由于您的数据是用字符分隔的行,列,因此您可以考虑使用awk

awk -F: '$1 == "test1"' file

答案 2 :(得分:0)

我认为您只需要在“ test1”之后添加“:”,请参见示例:

grep “test1:” file