• ベストアンサー

awkのセパレータ指定について

awkのセパレータ指定について教えてください。 以下のようなファイルがありそれを'||'区切りで出力したいです。 下記のような指定をしてみたのですが、 うまくいきませんでした。 cat text | awk -F '||' '{print $1}' [test.txt] aaa||bbb||ccc [期待する結果] print $1 → aaa print $2 → bbb print $3 → ccc どなたか教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

FS="||"はうまくいかないみたいですね。 FS="[|]+"ならOKみたいなので、 cat text.txt | awk -F'[|]+' '{print $1}' or cat text.txt | awk 'BEGIN{FS="[|]+"}{print $1}' で。

greenn777
質問者

お礼

回答ありがとうございます。 正規表現で行うのですね。 期待する動きとなりました。 ありがとうございました。

その他の回答 (2)

noname#190876
noname#190876
回答No.2

cat text | sed 's/\|\|/ /g | awk '{print $1, $2, $3}' でいけるけど。

greenn777
質問者

お礼

回答ありがとうございます。 sed で置換してawkで行っているのですね。 勉強になりました ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

具体的に何がどううまくいっていないのかわかりませんが.... とりあえず ・なぜ「cat text」なんだろう ・マニュアルは読んだ?

関連するQ&A