我正在尝试使用grep命令从linux获取txt文件中特定字符串的行号。
例如,我有一个包含
的文本文件asdf
ghjk
zxcv
如果我为asdf
grep这个文件,我们将收到数字为1的整数。
如果我为zxcv
grep这个文件,我们将收到数字为3的整数。
如何使用grep返回行号?
答案 0 :(得分:2)
要从grep返回行号,请使用-n
开关。您可以将grep
的输出传递给cut
命令以解析:<search_string>
。
grep -n <pattern> <file> | cut -f1 -d:
如果您的文件(test.txt
)具有以下内容......
asdf
ghjk
zxcv
asdf
您将获得单次出现的以下输出...
$ grep -n ghjk test.txt | cut -f1 -d:
2
如果您的搜索条件位于文件中的多行,则会返回多个行号。
$ grep -n asdf test.txt | cut -f1 -d:
1
4