gpt4 book ai didi

shell - 如何打印文件中出现字符串的行号?

转载 作者:行者123 更新时间:2023-12-04 00:41:40 25 4
gpt4 key购买 nike

我有一个特定的词,我想找出该词出现在我的文件中的哪个行号。

这发生在 c shell 脚本中。

我一直在尝试使用 awk 来查找行号,但到目前为止我还没有找到。我也想将该行号分配给一个变量。

最佳答案

使用 grep

寻找word在文件中打印行号,使用 -n选项 grep :

grep -n 'word' file

这将打印行号和匹配的行。

使用 awk

这将打印单词 word 所在的行数出现在文件中:
awk '/word/{print NR}' file

这将打印行号和 word 所在的行出现:
awk '/word/{print NR, $0}' file

您可以更换 word使用您喜欢的任何正则表达式。

这个怎么运作:
  • /word/
    这将选择包含 word 的行.
  • {print NR}
    对于选定的行,这将打印行号(NR 表示记录编号)。您可以更改此设置以打印您感兴趣的任何信息。因此,{print NR, $0}将打印行号,然后是行本身,$0 .

  • 将行号分配给变量

    使用命令替换:
    n=$(awk '/word/{print NR}' file)

    使用 shell 变量作为模式

    假设我们要查找的正则表达式在 shell 变量 url 中。 :
    awk -v x="$url" '$0~x {print NR}' file

    和:
    n=$(awk -v x="$url" '$0~x {print NR}' file)

    关于shell - 如何打印文件中出现字符串的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30658703/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com