以前 awk で最後のカラム以外を表示してみましたが、今回は指定したカラム以降のカラムを全部表示したいと思います。
例えば、7 個の文字列がカンマで区切られているファイルがあるとしたら、3 番目のカラム以降を表示する場合は、$3 $4 $5 $6 $7 を指定すれば可能になりますが、これだとカラム数が多くなると大変です。
よって、ここでは awk の組み込み関数である for を利用します。下記の文字列が書かれているファイルがあると仮定します。
1 2 | $ cat rilakkuma.txt A,B,C,D,E,F,G |
サンプルコード
上記ファイルの文字列の中から、3 番目以降をハイフン区切りで表示する場合は以下のようにします。
NF は「フィールド総数を表す組み込み変数」なので、これを活用して、3 番目から最後までの値を取得します。
1 2 | $ awk -F',' '{for(i=3;i<NF;i++){printf("%s%s",$i,OFS="-")}print $NF}' rilakkuma.txt C-D-E-F-G |