RHEL9 awkコマンドでファイルを分割するサンプル

環境
$cat/etc/redhat-release
Red Hat Enterprise Linux release 9.2 (Plow)

操作例
サンプルファイルtest.txt

depid cityid date
101 4 2023/11/12
102 3 2023/12/12
103 2 2023/10/13
104 1 2023/10/22

1.特定列の値単位でファイルを分割する

$awk '{file ="city"$2;print $0 >> file}' test.txt
$ ls
city1 city2 city3 city4 test.txt

2.行数を指定してファイルを分割する

$ awk 'BEGIN{c=0}{file="yy"c;print $0 >> file;NR%3==0&&c++}' test.txt
$ ls
test.txt yy0 yy1 yy2 yy3

3.偶数行・奇数行でファイルを分割する

$ awk '{file="lines"NR%2;print $0 >> file}' test.txt
$ ls
test.txt lines0 lines1

 

RHEL9

Posted by arkgame