- ベストアンサー
awkのセパレータ指定について
awkのセパレータ指定について教えてください。 以下のようなファイルがありそれを'||'区切りで出力したいです。 下記のような指定をしてみたのですが、 うまくいきませんでした。 cat text | awk -F '||' '{print $1}' [test.txt] aaa||bbb||ccc [期待する結果] print $1 → aaa print $2 → bbb print $3 → ccc どなたか教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
FS="||"はうまくいかないみたいですね。 FS="[|]+"ならOKみたいなので、 cat text.txt | awk -F'[|]+' '{print $1}' or cat text.txt | awk 'BEGIN{FS="[|]+"}{print $1}' で。
その他の回答 (2)
noname#190876
回答No.2
cat text | sed 's/\|\|/ /g | awk '{print $1, $2, $3}' でいけるけど。
質問者
お礼
回答ありがとうございます。 sed で置換してawkで行っているのですね。 勉強になりました ありがとうございました。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
具体的に何がどううまくいっていないのかわかりませんが.... とりあえず ・なぜ「cat text」なんだろう ・マニュアルは読んだ?
お礼
回答ありがとうございます。 正規表現で行うのですね。 期待する動きとなりました。 ありがとうございました。