Quantcast
Channel: HP-UX –俺的備忘録 〜なんかいろいろ〜
Viewing all articles
Browse latest Browse all 99

Linux・UNIXでExcelのフィルタのように、ファイルから〇〇以上、〇〇以下で行を抽出する方法

$
0
0

LinuxやUNIXで、Excelのフィルタ機能のように特定の列で〇〇以上、〇〇以下といった指定方法で行を抽出する場合は、awkを使うとカンタンだ。
awkで特定列の値が〇〇以上の行を指定する場合は、以下のように指定する。

awk '列 >= 条件' 対象ファイル

 

複数条件を指定する場合は、以下のように「&&」で繋げる。
例えば、特定列の値が〇〇以上、〇〇以下といった指定をする場合は、以下のようにする。

awk '列 >= 条件 &amp;amp;amp;&amp;amp;amp; 列 <= 条件' 対象ファイル

20150925_000000

[root@test-centos7 ~]# cat /work/test5_7.txt
1 aaaaa 10
2 bbbbb 4
3 ccccc 7
4 ddddd 3
5 eeeee 9
6 fffff 6
7 ggggg 8
8 hhhhh 2
9 iiiii 1
10 jjjjj 5
[root@test-centos7 ~]# awk '$1 >=3' /work/test5_7.txt
3 ccccc 7
4 ddddd 3
5 eeeee 9
6 fffff 6
7 ggggg 8
8 hhhhh 2
9 iiiii 1
10 jjjjj 5
[root@test-centos7 ~]# awk '$1 >=3 && $1 <=7' /work/test5_7.txt
3 ccccc 7
4 ddddd 3
5 eeeee 9
6 fffff 6
7 ggggg 8

もちろん、特定列の値を指定することも出来る。

awk '列 == 条件' 対象ファイル

20150925_000001

[root@test-centos7 ~]# cat /work/test5_7.txt
1 aaaaa 10
2 bbbbb 4
3 ccccc 7
4 ddddd 3
5 eeeee 9
6 fffff 6
7 ggggg 8
8 hhhhh 2
9 iiiii 1
10 jjjjj 5
[root@test-centos7 ~]# awk '$2=="ccccc"' /work/test5_7.txt
3 ccccc 7

このように、Linux/UNIXのコマンドライン上でExcelのフィルタのような抽出をするなら、awkを使えばカンタンに行う事が出来る。

 

AWK実践入門 AWK実践入門

Viewing all articles
Browse latest Browse all 99

Trending Articles