【问题标题】:How to ignore the escape sequence warning in awk command如何忽略 awk 命令中的转义序列警告
【发布时间】:2013-12-04 04:02:49
【问题描述】:

我使用下面的命令来获取特定字符串的行号

str_to_search="\/searchString >"
fileName=Myfile.txt
startingCt=$(awk '$0 ~ str{print NR; exit }' str="$str_to_search" $fileName)
endingCt=$(($startingCt + 3))
echo $startingCt
echo $endingCt

我能够获得行号,但我收到了转义序列的警告消息

awk:命令。行:1:警告:转义序列\/' treated as plain/'

请让我知道是否有任何方法可以忽略转义序列的警告,以及是否有更好的方法来获取行号。提前致谢。

【问题讨论】:

    标签: bash shell awk


    【解决方案1】:

    问题可能与您的 awk 版本有关。

    在此处查看链接:http://ubuntuforums.org/showthread.php?t=474549

    这是使用 AWK 的方法:

    gawk '/PATTERN/ {print FNR}' filename
    

    我是否也可以提供这个解决方案,虽然它不使用 awk?

    sed -n '/pattern/=' filename
    

    Sed 和 AWK 有点像可爱的兄弟,你会在许多系统上找到它们的某种版本,并且共享很多功能,但使用它们的方式不同。

    上面的命令将只输出你正在寻找的模式的行号。

    【讨论】:

    • 我在这里无法控制 awk 版本。有没有其他方法可以获得第一个匹配行号。我使用了 grep -n 但它会打印所有匹配的行号。
    • 可能,但请与我们分享您安装了哪个 awk
    • @ Oz123 GNU awk 3.1.5
    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 2014-04-03
    • 2021-11-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多