ボクダイモリ

Life is like a Game

awkのprintでピリオドを出力したいが出来なかった

追記

結論、できた。ピリオドをダブルクォテーションで括ればよかったようです。

echo "1.2.3" | awk -F. '{print $1"."$2"."($3 + 1)}'

問題

下のようにawkのprintを使って演算した結果をピリオド付きで出力をしたかったが出来なかった

$ cat awk_test.sh
#!/bin/bash
echo "1.2.3" | awk -F. '{print $1.$2.($3 + 1)}'

$ sh awk_test.sh
124

\でピリオドをエスケープすればできる?と思ったけどもsyntax errorが出てしまう。

解決策

最初に加工した結果をスペース区切りで出力させて、そのあとsedでピリオドに置き換えた

$ cat awk_test.sh
#!/bin/bash
echo "1.2.3" | awk -F. '{print $1,$2,($3 + 1)}' | sed 's/ /./g'

$ sh awk_test.sh
1.2.4