質問

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|/'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top