私は、次のsedコマンドがあります。2つのパターンマッチ
sed -n '/^out(/{n;p}' ${filename} | sed -n '/format/ s/.*format=//g; s/),$//gp; s/))$//gp'
を私はのように1行としてそれを実行しようとしました:
sed -n '/^out(/{n;}; /format/ s/.*format=//g; s/),$//gp; s/))$//gp' ${filename}
しかし、それはまた、私はドン行を表示欲しいもの(一致しないもの)。
entry(variable=value)),
format(variable=value)),
entry(variable=value)))
out(variable=value)),
format(variable=value)),
...
は、私はちょうど出て、エントリの後に来た形式の行をしたい:
は私が持っていることのようにいくつかの文字列を含むファイルです。 out
が見つかったら、それは次の行(n
)に進出し、p
フラグを付けてs
コマンドを使用しています
sed -nr '/^out[(]/ {n ; s/.*[(]([^)]+)[)].*/\1/p}' your_file
:と、
私はgrepでそれを行うことができると知っていますが、私は単一のコマンド(単一のgrep、単一のawkまたは単一のsed)を使用したいと思います。/cpuフットプリント – Lin
あなたの質問の2番目のsedコマンドは、あなたが与えたサンプル入力に対して完璧に機能します。 –
@Linもっと簡単ですあなたがサンプル入力と出力が必要な場合は、すべてのために。 –