【发布时间】:2011-09-03 22:00:32
【问题描述】:
awk '$0 ~ str{print b}{b=$0}' str="findme" path_to_file
有了这个,我可以得到找到的字符串行之前的行。
如何打印它的行号?
【问题讨论】:
-
在看到对 thelux4 的评论后,我可以说不清楚你想要什么。从问题来看,您似乎想与 str 对齐(而不是在它之前的 line),所以正如我已经回答的那样,您应该使用
print,例如awk -v str="findme" '$0 ~ str {print}' path_to_file。但是如果你想要行号(那么问题是错误的),使用NR内置变量。 -
问题没有错,“我如何打印它的行号?”声明我想要行号。
-
原来听起来不一样:
with this i can get the line before the found string's line. How can i also print its line?在我的评论发送后 6.5 小时由@Johan 修复。在@eyadof 回答下发表评论后,您应该意识到您的问题需要解决,而我当时的评论应该会说服您更好地表达它。始终尽可能精确,不要假装你实际上不是。很容易检查(尤其是你自己作为 OP),所以我不知道你为什么现在提出这个问题。 -
我的意思是实际存在的行号,但无论如何,也许我应该更清楚。感谢您的建议。