如何在linux中返回文件中首次出现的文本的行号
在linux中,如何返回文件中第一次出现的文本的行号?例如,一个文件如下所示如何在linux中返回文件中首次出现的文本的行号,linux,shell,text,grep,cut,Linux,Shell,Text,Grep,Cut,在linux中,如何返回文件中第一次出现的文本的行号?例如,一个文件如下所示 12:04:56 xxxx 12:06:23 xxxx 12:09:11 xxxx 12:09:13 xxxx 12:10:12 xxxx 如果所需文本为“12:09:”,任何人都可以提供返回3的行命令吗?尝试以下操作: awk '/12:06:23/{print NR;exit}' file 与及: grep-n还返回找到的匹配项的行号。从那时起,您可以结合使用head和cut来提取行号: cat myfile.
12:04:56 xxxx
12:06:23 xxxx
12:09:11 xxxx
12:09:13 xxxx
12:10:12 xxxx
如果所需文本为“12:09:”,任何人都可以提供返回3的行命令吗?尝试以下操作:
awk '/12:06:23/{print NR;exit}' file
与及:
grep-n
还返回找到的匹配项的行号。从那时起,您可以结合使用head
和cut
来提取行号:
cat myfile.txt | grep -n "12:09" | head -1 | cut -d":" -f1
-n
或-grep
中的行号应执行以下操作trick@sputnick实际上,grep本身也是如此:grep-n“12:09”bla.txt | head-1 | cut-d:“-f1
。我只是觉得使用cat
更具可读性,因为您可以从左到右阅读整个流程。@sputnick这并不是说我不喜欢awk
解决方案,though@Mureinik:对于从左到右的可读性:
OOps,是的,grep不是awk。但同样的想法
cat myfile.txt | grep -n "12:09" | head -1 | cut -d":" -f1