我有一個有少量列的數據集,但是當列1有一個偶數時,我想將它分離到一個新文件。列1格式爲M1 *
,這裏它有奇數(1)。如何使用awk將文件分隔到不同的文件
數據集:
Var1 Var2 Var3
M1 * 2 3
M3 * 4 2
M2 * 1 5
M6 * 1 6
我有一個有少量列的數據集,但是當列1有一個偶數時,我想將它分離到一個新文件。列1格式爲M1 *
,這裏它有奇數(1)。如何使用awk將文件分隔到不同的文件
數據集:
Var1 Var2 Var3
M1 * 2 3
M3 * 4 2
M2 * 1 5
M6 * 1 6
使用grep:
$ grep '^[^[:blank:]]*[02468][[:blank:]]' infile
M2 * 1 5
M6 * 1 6
這得到所有的行,其中所述第一空間之前的字符是偶數,即,第一列與偶數結束。
試試這個:
$ awk '!(substr($1,2)%2)' infile > new_file
$ cat new_file
Var1 Var2 Var3
M2 * 1 5
M6 * 1 6
awk
來救援!
$ awk '$1~/[02468]$/' file
M2 * 1 5
M6 * 1 6
檢查第一個字段的最後一位是否是其中一個。
要添加頁眉
$ awk 'NR==1 || $1~/[02468]$/' file
Var1 Var2 Var3
M2 * 1 5
M6 * 1 6
@EdMorton - 感謝您指出了這一點,我已經更新了答案。 – Ren
@EdMorton - 謝謝:) – Ren