質問
awkでフィールドを結合するのは簡単ですか?具体的には、次のような行があります:
1,2,some text
3,4,some text, but it has commas in it, annoyingly
最初の2つのフィールドとして2つの数値を抽出したいのですが、すべてのテキスト(カンマとすべて)を3番目のフィールドにしたいです。それを行う方法はありますか?
私の基本的なawk呼び出しは次のようなものでした:
awk -F\, '{print $1"|"$2"|"$3}' file.txt
1行目は正常に機能しますが、2行目のテキストのコンマで停止します。
解決
たぶん:
awk '{for (i=0;i<2;i++) sub(",", "|", <*>); print}' file.txt
他のヒント
sedを使用して実行できます。
cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
所属していません StackOverflow