さまざまな入力変数と出力変数を含む複数のモジュールが定義されたVerilogファイルがあります。sedスクリプトを使用して、このような変数(入力/出力)の最後の出現を見つける必要があります。次のコマンドを実行します
address = sed -n '100,200{/output/=};100,200{/input/=}' file.txt
106だけが欲しいのに、102 103 104105106として出力されます。なんらかの方法で提案してください。
これはあなたのために働くかもしれません:
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
あなたができること:
nl -ba < file.txt | sed -n '100,200{/output\|input/h};$x;$p'