1

pattern1(固定)とpattern2(これはp2-1 / p2-2の場合があります)の間のテキストを抽出しようとしています。1つのコマンドでこれを実現する方法を教えてください。

ファイルは、またはstartのいずれかで始まり、またはで終わりますendclose

File1:
======
junktest
data
start
stackoverflow
sed
close

File2:
======
data2
start
stackoverflow
end

File1からテキストを抽出できます

sed -n "/start/,/close/p"

そしてFile2から

sed -n "/start/,/end/p"

両方を実現するには、単一のsedコマンドが必要です。

sed -n "/start/, /close or end /p"
4

4 に答える 4

5

GNUsedとBSDの両方sed

sed -nE '/start/,/close|end/p' file
于 2013-03-04T20:51:34.670 に答える
2

このawkはよく見えます

awk '/start/,/end|close/' file
于 2013-03-04T18:13:42.973 に答える
0

簡単にawk

$ awk '/start/{p=1}p{print}/end|close/{p=0}' file
于 2013-03-04T09:45:32.320 に答える
0
sed -n -E "/Word1/,/Word2-1/p" | sed -n -E "/Word1/,/Word2-2/p"
于 2013-03-04T09:28:31.033 に答える