テキスト整形をする必要があり、ローカルの cygwin 環境でごにょごにょやって手順ができあがって CentOS7 で試したところうまくいかない。
デバッグしてみると awk の上書きオプションが動いていない。調べてみると awk の上書き保存するオプション( -i inplace )は、Version 4.1.0 以降じゃないと使えないらしい。CentOS7デフォルトのawkのバージョンは 4.0.2 だったのでアップデートしてみました。
awk / gawk をアップデート
まずは、デフォルトの awk のバージョンを確認。
1 2 3 4 |
# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # awk -V GNU Awk 4.0.2 |
手っ取り早くyumでアップデートしようとしたところ、-i inplace オプションを使えるという Version 4.1.0 以上にアップデートできません。。。
1 2 3 4 5 6 |
# yum update gawk ==================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ==================================================================================================================== 更新します: gawk x86_64 4.0.2-4.el7_3.1 updates 874 k |
手元の Cygwin 環境はかなり前にインストールしたもの。それに比べてCentOS7で対応していないのはなぜ?てか、Version はいくつまで出ているんだろうか。
以下から見てみると、2016年8月に最終の gawk-4.1.4 がでている。
えっと、4.0.2 は、、、2012年12月に出ているバージョンでした。なんでアップデートしないのか。と思ったけど調べる気もしないのでさっさとアップデートすることにする。
最新版をダウンロードして展開します。
1 2 3 4 |
# cd /usr/local/source # wget http://ftp.gnu.org/gnu/gawk/gawk-4.1.4.tar.gz # tar zxvf gawk-4.1.4.tar.gz # cd gawk-4.1.4 |
コンパイルしてインストールします。
1 2 3 |
# ./configure # make # make install |
バージョンを確認します。
1 2 |
# awk -V GNU Awk 4.1.4, API: 1.1 |
以上です。
↓↓↓ 持っていると便利な一冊。