sed - 事前定義された特定の行でのみパターンを使用します。

sed - 事前定義された特定の行でのみパターンを使用します。

sed私はそれを使用してファイルから数行を提供したいと思います。私は私が知っているファイルの特定の部分からのみこの行を抽出したいと思います。たとえば、100行のファイルがあり、10行と30行の特定のパターンを持つ行を探しています。

現在の解決策は、2つのsedコマンドを使用することです。最初のコマンドは、私が持っている行番号間のすべての内容を印刷します。

sed -n "10,30p" target_file.file

2番目はパターンを使用してこの結果を取得します。

sed -n '/pattern/p'

だから結局私はこれを持っています:

sed -n "10,30p" target_file.file | sed -n '/pattern/p'

両方のコマンドから1つのコマンドを生成する方法はありますか?

答え1

あなたはできます:

$ sed -n '10,30{
  /pattern/p
}' <file

これは現在の標準構文です。以下も使用できます。

$ sed -n '10,30{/pattern/p;}' <file

次のPOSIXバージョンで。

関連情報