2016-04-03 73 views
0

我有一個有少量列的數據集,但是當列1有一個偶數時,我想將它分離到一個新文件。列1格式爲M1 *,這裏它有奇數(1)。如何使用awk將文件分隔到不同的文件

數據集:

Var1 Var2 Var3 
M1 * 2 3 
M3 * 4 2 
M2 * 1 5 
M6 * 1 6 

回答

0

使用grep:

$ grep '^[^[:blank:]]*[02468][[:blank:]]' infile 
M2 * 1 5 
M6 * 1 6 

這得到所有的行,其中所述第一空間之前的字符是偶數,即,第一列與偶數結束。

1

試試這個:

$ awk '!(substr($1,2)%2)' infile > new_file 
$ cat new_file 
Var1 Var2 Var3 
M2 * 1 5 
M6 * 1 6 
+1

@EdMorton - 感謝您指出了這一點,我已經更新了答案。 – Ren

+1

@EdMorton - 謝謝:) – Ren

0

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 
相關問題