grepが存在する世界で `sed -n "/regexp/p"`のユースケースはありますか?

grepが存在する世界で `sed -n

sed -n "/regexp/p"一致する行だけが印刷され、regexp他の行は印刷されません。これは行われた操作と正確に一致しているようですgrep。この構成を使用して私が見た唯一のユースケースは、すでにgrepsed内で何かをしていて、他のプログラムにパイプするのが厄介な場合です。

誰もがこの構造を使用する他の理由を考えることができますかgrep

ベストアンサー1

コマンドsed -n '/re/p'(または各ループの終わりでデフォルト出力を抑制sed '/re/!d'しない)は、同じで、両方ともこの基本的な方法でエディタのコマンド(「グローバルマッチングと印刷」)で追跡できます。存在するように。-ngrep -e 're'edg/re/presedgrepged

特定の正規表現に一致する行のみを印刷するには、grepを使用しますgrep。これが最も基本的な作業です。この操作にgrep代わって使用すると、sedシェルコードがよりきれいになり、理解と保守が容易になります。

長い編集スクリプトの一部である場合は、/re/pinを使用してください。非常に特別で気まぐれな要件がない限り、入力をパイプで接続したり、その逆にパイプしないでください。sedsedgrepsed

コマンド/re/は次のとおりです。sed住所。特定の正規表現に一致するすべての行を処理します。を使用すると、/re/p次の行が印刷されます。つまり、/re/コマンドのアドレスですp

アドレスは行番号であってもよいし、2行番号、2つの正規表現、またはそれらの組合せによって記述される範囲であってもよい。たとえば、を使用して、sed -n '5,/re/p'5行目から一致する行まですべての行を印刷できますre。ユーティリティgrepにはこの機能はなく、エディタsedからed継承されます。

簡単に言えば、grep特定の正規表現に一致する行を抽出するのに適したツールです。より複雑な基準(範囲内など)に一致する行を抽出するには、sedまたはを使用しますawk

おすすめ記事