2016-10-25 31 views
0
awk 'length($1)==3 && length($2)==3 {print $1, $2 "\t", $5}' file.txt 

我試圖只用一個字符打印列。Awk:從列中除去列入白名單的所有字符

它可以是A或B或C或D,否定5美元中的其他東西。

$ 5 file.txt的是

112C 
222F 
B212 
F2334 
C23 
A123 

我想輸出是

C 

B 

C 
A 

回答

1

要刪除所有字符除了ABC,和D$5,使用gsub(/[^ABCD]/, "", $5)

應用到您的命令:

awk 'length($1)==3 && length($2)==3 { 
    gsub(/[^ABCD]/, "", $5); 
    print $1, $2 "\t" $5 
}' file.txt 
+0

如果我想這樣做是$ 5和$ 6 – maria

+0

如果我想用$ 5和$ 6也這樣做。謝謝 – maria

+0

我明白了:)yippy – maria

0

AWK「長度($ 1)== 3 & &長度($ 2)== 3 {匹配($ 5,/ A | B | C | D /,arr);打印$ 1,$ 2 「\ t」 的,ARR [0]}」 file.txt的

+0

給出語法錯誤 – maria

相關問題