假设我有一个名为 的文本文件output.txt,其中包含 146 万行数据。
27QL我想搜索文件中的文本。
如果文本存在,Linux 应返回行号。
我怎样才能做到这一点?
我可以用吗grep?如果是,怎么办?
该grep实用程序有一个标准选项,这将导致它在其普通输出前面添加与模式匹配的-n行号。grep行号与行内容之间用冒号分隔。
grep -n -F -w '27QL' file
Run Code Online (Sandbox Code Playgroud)
在这里,我还使用了非标准-w选项来仅搜索完整的单词,这意味着我们不会匹配127QLor 27QLA。使用-F,您可以得知grep您的模式是字符串而不是正则表达式。
要从输出中删除实际数据(即仅提取行号),请将输出传递给cut:
grep -n -F -w '27QL' file |
cut -d : -f 1
Run Code Online (Sandbox Code Playgroud)