使用SED脚本查找多次出现的正则表达式中的最后一次出现

时间:2012-07-27 09:54:08

标签: sed awk

我有一个verilog文件,其中定义了多个包含各种输入和输出变量的模块。 我需要使用sed脚本找出最后出现的这种变量(输入/输出)。 我运行以下命令

地址= sed -n '100,200{/output/=};100,200{/input/=}' file.txt
它给我的输出为102 103 104 105 106 虽然我只想要106。 请以某种方式建议我。

3 个答案:

答案 0 :(得分:1)

这可能对您有用:

sed '100,200{/input\|output/=};d' file.txt | sed '$!d'

或者也许如你所愿:

address=$(sed '100,200{/input\|output/=};d' file.txt | sed '$!d')

答案 1 :(得分:0)

sed -n '100,200p' foo.txt | awk '/input/{s=NR} /output/{s=NR} END{print s}'

答案 2 :(得分:0)

你可以这样做:

nl -ba < file.txt | sed -n '100,200{/output\|input/h};$x;$p'