如何忽略awk命令中的转义序列警告

时间:2013-12-04 04:02:49

标签: bash shell awk

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

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:cmd。 line:1:warning:转义序列\/' treated as plain /'

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

1 个答案:

答案 0 :(得分:3)

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

请参阅此处的链接:http://ubuntuforums.org/showthread.php?t=474549

以下是AWK的方式:

gawk '/PATTERN/ {print FNR}' filename

我可以提供这个解决方案,虽然它没有使用awk吗?

sed -n '/pattern/=' filename
Sed和AWK有点像可爱的兄弟,你会在很多系统上找到它们的某种版本,并且分享很多功能,但是使用它们的方式不同。

上述命令将仅输出您要查找的模式的行号。