cmdを使用してsed
すべてのパターンを1行に印刷したいです。私はgrep -Pe
andを使ってこれを行う方法を知っていますawk
。私は次のように始めました:
$ sed 's/^.*label="\(.*\)" selected.*$/\1/g' <(echo 'smkj sld/6_ !label="snd 1" selected>lms slks.;label="snd 2" selected>lkwnl wlkmlabel="snd 3" selected>The following should not be printedlabel="')
snd 3
ただし、上記の内容は間snd 3
の文字列のみを印刷します。最後label="
そして発生" selected
。すべての行に正規表現のすべての項目を含める方法は?
ベストアンサー1
これにより、GNU sed
次のように目的の出力を生成できます。
$ sed -Ee '
s/label="([^"]+)" selected[>]/\n\1\n/
s/.*\n(.*\n)/\1/
/\n/!d
P;D
' input.txt
出力:
snd 1
snd 2
snd 3
Perl
ライナーでできます。
$ perl -lne 'print for /label="([^"]+)" selected[>]/g' input.txt