我有一個verilog文件,其中定義了包含各種輸入和輸出變量的多個模塊。 我需要使用sed腳本找出這種變量(輸入/輸出)的最後一次出現。 我運行下面的命令使用SED腳本查找多次出現正則表達式的最後一次出現
地址= sed -n '100,200{/output/=};100,200{/input/=}' file.txt
其給我輸出作爲102 103 104 105 106 而我想僅106 請給我建議一些方法。
我有一個verilog文件,其中定義了包含各種輸入和輸出變量的多個模塊。 我需要使用sed腳本找出這種變量(輸入/輸出)的最後一次出現。 我運行下面的命令使用SED腳本查找多次出現正則表達式的最後一次出現
地址= sed -n '100,200{/output/=};100,200{/input/=}' file.txt
其給我輸出作爲102 103 104 105 106 而我想僅106 請給我建議一些方法。
這可能會爲你工作:當你打算
sed '100,200{/input\|output/=};d' file.txt | sed '$!d'
或者是:
address=$(sed '100,200{/input\|output/=};d' file.txt | sed '$!d')
sed -n '100,200p' foo.txt | awk '/input/{s=NR} /output/{s=NR} END{print s}'
你不必使用sed,當然sed/awk可以。試試這個:
grep -nE "input|output" test.txt|tail -1|cut -f1 -d:
編輯
你要嗎?
kent$ echo "102 103 104 105 106"|awk '{print $NF}'
106
編輯再次
kent$ another=$(echo "102 103 104 105 106"|awk '{print $NF}')
kent$ echo $another
106
有一個變量$地址,它具有所有這些值101 102 103 ..請告訴我如何找出這個變量中的最後一個值。 – 2012-07-27 10:48:14
@ user1468315檢查更新的答案,不知道它是否是你想要的。 – Kent 2012-07-27 10:53:44
還有一個問題,我想將這個值保存在另一個變量中。 – 2012-07-27 11:05:26
你可以這樣做:
nl -ba < file.txt | sed -n '100,200{/output\|input/h};$x;$p'
或者(我敢說呢?)'cat -n file.txt' :) – potong 2012-07-28 07:02:00
'cat -n'在IEEE標準1003.1-2008下沒有標準化,但'nl -ba'是。 (但'cat -n'可能可用!) – 2012-07-28 20:34:44
它沒有給我行號,但給出的模式出現後最後input/output.plz幫助! – 2012-07-27 10:33:50
@ user1468315更新。 – slitvinov 2012-07-27 11:04:08