使用Bash脚本查找文件中的string行号

如何使用bash脚本来查找string出现的行号?

例如,如果一个文件看起来像这样,

Hello I am Isaiah This is a line of text. This is another line of text. 

我运行脚本来查找string“行”它会输出数字2,因为它是第一次发生。

Solutions Collecting From Web of "使用Bash脚本查找文件中的string行号"

鉴于你的例子只打印字符串的第一次出现的行号,也许你正在寻找:

 awk '/line/{ print NR; exit }' input-file 

如果你真的想要所有的发生(例如,如果你的例子所需的输出实际上是“2 \ n3 \ n”),那么省略exit

我喜欢悉达多对OP的评论。 为什么他没有把它作为答案逃脱我。

我通常只是想要显示我正在寻找的第一行的行号。

 lineNum="$(grep -n "needle" haystack.txt | head -n 1 | cut -d: -f1)" 

解释说:在grep之后,抓住第一行( num:line ),用冒号d elimiter截取并抓取第一个字段