Linuxで、awkやsedを使ってファイルから奇数行・偶数行のみを抽出する場合は、以下のようにする。
●awk
awk 'NR%2==0' # 偶数行のみ抽出 awk 'NR%2!=0' # 奇数行のみ抽出
blacknon@BS-PUB-UBUNTU-01:~$ cat -n /tmp/test4.txt 1 aaaaa 2 bbbbb 3 ccccc 4 ddddd 5 eeeee 6 fffff 7 ggggg 8 hhhhh 9 iiiii 10 jjjjj 11 kkkkk 12 lllll 13 mmmmm blacknon@BS-PUB-UBUNTU-01:~$ cat -n /tmp/test4.txt | awk 'NR%2==0' # 偶数行のみ抽出 2 bbbbb 4 ddddd 6 fffff 8 hhhhh 10 jjjjj 12 lllll blacknon@BS-PUB-UBUNTU-01:~$ cat -n /tmp/test4.txt | awk 'NR%2!=0' # 奇数行のみ抽出 1 aaaaa 3 ccccc 5 eeeee 7 ggggg 9 iiiii 11 kkkkk 13 mmmmm
●sed
sed '1d; n; d' # 偶数行のみ抽出 sed 'n; d' # 奇数行のみ抽出
blacknon@BS-PUB-UBUNTU-01:~$ cat -n /tmp/test4.txt 1 aaaaa 2 bbbbb 3 ccccc 4 ddddd 5 eeeee 6 fffff 7 ggggg 8 hhhhh 9 iiiii 10 jjjjj 11 kkkkk 12 lllll 13 mmmmm blacknon@BS-PUB-UBUNTU-01:~$ cat -n /tmp/test4.txt | sed '1d; n; d' # 偶数行のみ抽出 2 bbbbb 4 ddddd 6 fffff 8 hhhhh 10 jjjjj 12 lllll blacknon@BS-PUB-UBUNTU-01:~$ cat -n /tmp/test4.txt | sed 'n; d' # 奇数行のみ抽出 1 aaaaa 3 ccccc 5 eeeee 7 ggggg 9 iiiii 11 kkkkk 13 mmmmm