awkで特定の列を除外して出力させる場合は、以下のように対象となる列を空白にしてやることで対応できる。
例:2列目を除外して出力させる場合
awk '{$2="";print}' 対象ファイル
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test1.txt
id name prefecture value
1 aaa 1 123
2 bbb 2 544
3 ccc 1 65745
4 ddd 1 122
5 eee 2 222
6 fff 1 444
7 ggg 3 566
8 hhh 4 111
9 iii 3 12
10 bbb 2 1243
11 ddd 1 4423
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test1.txt | awk '{$2="";print}'
id prefecture value
1 1 123
2 2 544
3 1 65745
4 1 122
5 2 222
6 1 444
7 3 566
8 4 111
9 3 12
10 2 1243
11 1 4423
どうやら複数列の指定をまとめて記述する方法は無いようなので、連続した列(2列目から4列目など)の場合はforで処理させる必要がありそうだ。
例:2列目と3列目を除外する場合
awk '{for(i=2;i<=3;i++){$i=""};print}' 対象ファイル
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test1.txt
id name prefecture value
1 aaa 1 123
2 bbb 2 544
3 ccc 1 65745
4 ddd 1 122
5 eee 2 222
6 fff 1 444
7 ggg 3 566
8 hhh 4 111
9 iii 3 12
10 bbb 2 1243
11 ddd 1 4423
[root@BS-PUB-CENT7-01 ~]# cat /tmp/test1.txt | awk '{for(i=2;i<=3;i++){$i=""};print}'
id value
1 123
2 544
3 65745
4 122
5 222
6 444
7 566
8 111
9 12
10 1243
11 4423