私はこのような内容のファイルを持っています。awkは開始マッチパターンの最後のマッチから最後のパターンまでを印刷します
if {[CELL NAME "CELL1"]} {
define_cell \
-pinlist { i0 i1 i2 0 } \
CELL1
}
if {[CELL NAME "CELL2"]} {
define_cell \
-pinlist { i0 i1 i2 0 } \
CELL2
}
define_cell \
-pinlist { i0 i1 i2 0 } \
CELL3
define_cell \
-pinlist { i0 i1 i2 0 } \
CELL4
私はこのようなサブセクションを取得しようとしています。私は以下のような簡単なスクリプトでそうしようとしていた場合
define_cell \
-pinlist { i0 i1 i2 0 } \
CELL3
、私は実際に私の予想に反して、ファイルの最後までdefine_cellの最初の試合から取得しています。
awk '/define_cell/,/CELL3/{print $0}' <FILE>
どのように具体的な目標を達成できますか。私はこの中で提案された解決策に従おうとしました。 awk find the last match and print the next N lines しかし、動作させることができません。
このような何かがうまくいくかもしれないGNU AWKで
CELL4(リストの最後のもの)に最初のソリューションを使用すると問題が発生します。 define_cell行が欠落しています! これを修正する手がかりはありますか? 'bash-4.2 $ awk '{$ 0 = RT $ 0}/CELL4 /' ORS = RS = define_cell /tmp/input.txt \ -pinlist {i0 i1 i2 0} \ CELL4' – Pratap