次のファイルがあります。
anm="12S123S" family="" type="Std" product="" name="nand" allow="yes"
anm="12321 S=" family="" type="Std" product="" name="dan" need="No"
anm="SWED" family="" type="Std" product="" name="dmr" test="clasic"
出力は
12S123S
12321 S=
SWED
答え1
OPに関するすべてのコメントの収集:
by cut
(フィールド区切り文字を設定し"
、区切り文字がある行にのみ2番目のフィールドを印刷します):
cut -sd\" -f2
渡すgrep
プレハブ牛革(パターンを見つけて、\K
後でその一部のみを印刷します):
grep -Po 'anm="\K[^"]*'
渡すawk
ジェイソン・ライアン(フィールド区切り記号を設定"
し、2番目のフィールドを印刷します):
awk -F\" '{print $2}'
by sed
(すべての行を次に置き換えます。リバースマッチ(括弧内()
)は、"
最初の項目を除くすべての項目と一致し、"
そのような代替項目がある行のみを印刷します。
sed -n 's/[^"]*"\([^"]*\).*/\1/p'
答え2
anm="..."
次のようにgrepを使用してこのセクションを抽出できます。
grep -Eo 'anm="[^"]*"' file
grep オプションは、-o
行の一致する部分だけを出力します。
次に、各行のanm="
開始と終了を削除します。"
grep -Eo 'anm="[^"]*"' file | sed -e 's/^anm=\"//' -e 's/\"$//'