コマンドはいくつかの出力を取得していますが、出力から2つのパターン間のテキストを抽出する必要があります。スタートモードが固定されました。ただし、最終形式は2つの形式(word2-1やword2-2など)のいずれかです。
sed
単一のコマンドでこれを指定する方法はありますか?
頑張った
sed -n "/Word1/,/(word2-1|word2-2)/p"
sed -n "/Word1/,/word2-1|word2-2/p"
sed -n "/Word1/,/word2-1\|word2-2/p"
sed -n "/Word1/,/[word2-1|word2-2]/p"
答え1
正規表現の一致word2-1
はとです。サフィックスに複数の文字が含まれる場合は、別の文字を使用してください。word2-2
word2-[12]
word2-\(first\|second\)
3番目の正規表現は同じ文字列と一致し、より多くの繰り返しが行われます。
答え2
3番目のオプションは機能し、コメントに記載されているように、最初の一致のみを抽出します。
$ cat > file << 'EOF'
> foo
> bar
> Word1
> foo
> bar
> word2-2
> foo
> bar
> word2-1
> EOF
$ sed -n "/Word1/,/word2-1\|word2-2/p" file
Word1
foo
bar
word2-2