0

さまざまな入力変数と出力変数を含む複数のモジュールが定義されたVerilogファイルがあります。sedスクリプトを使用して、このような変数(入力/出力)の最後の出現を見つける必要があります。次のコマンドを実行します

address = sed -n '100,200{/output/=};100,200{/input/=}' file.txt
106だけが欲しいのに、102 103 104105106として出力されます。なんらかの方法で提案してください。

4

4 に答える 4

1

これはあなたのために働くかもしれません:

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

またはおそらくあなたが意図したように:

address=$(sed '100,200{/input\|output/=};d' file.txt | sed '$!d')
于 2012-07-27T11:54:19.577 に答える
0
sed -n '100,200p' foo.txt | awk '/input/{s=NR} /output/{s=NR} END{print s}'
于 2012-07-27T10:22:43.183 に答える
0

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
于 2012-07-27T10:37:55.120 に答える
0

あなたができること:

nl -ba < file.txt | sed -n '100,200{/output\|input/h};$x;$p'
于 2012-07-27T15:28:38.690 に答える