この 2 つの式を 1 つに結合して awk スクリプト ファイルで使用するにはどうすればよいですか?
awk '/select name="op_sys"/,/select>/' build/input.xhtml > build/output.xhtml
awk '/value="/,/">/' build/output.xhtml
編集: awk ファイルの式を次のように変換したいと思います。
#!/usr/bin/awk -f
{
...
}
2 つの範囲式をマージするのは危険だと思います。たとえば、2 番目の範囲が最初の範囲の外にある (または部分的に重なっている) 場合はどうなるでしょうか。私は単にパイプを使用します:
< build/input.xhtml awk '/select name="op_sys"/,/select>/' | awk '/value="/,/">/'
awk
アドレス範囲を簡単にネストすることはできません。フラグを使用して実行できますが、使用する方がはるかに簡単sed
です:
sed -n '/pat1/,/pat2/ { /pat3/,/pat4/p }'
pat3
と の間 (両端を含む)との間の行pat4
のみを出力pat1
しますpat2
。このような範囲のネストは、出力を 2 番目の呼び出しにパイプするのとまったく同じように動作しないことに注意してください。これは、オーバーラップの処理が異なるためです。