繁体   English   中英

awk不打印行号

[英]awk does not print line number

我有以下代码

awk -v bookName="$bookName" -v authorName="$authorName" '/bookName:authorName/{print NR}' BookDB.txt

我的bookDB.txt包含具有如下语法的文本:

书名:作者名:价格

上面的代码旨在精确匹配“ bookname:authorname”并在匹配的位置打印出行号。 但是,它没有打印出任何东西。

我在代码语法中没有发现任何错误。 任何帮助将不胜感激。

问题是您试图在/ /使用awk变量,但您不能这样做。

将条件更改为$0 ~ bookName ":" authorName以在整个记录$0搜索该模式。

或者,如果文件中的字段用:分隔,则还可以使用-F:设置输入字段分隔符,然后在前两个字段上使用字符串比较:

awk -F: -v book="$bookName" -v author="$authorName" '
    $1 == book && $2 == author{print NR}' BookDB.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM