2016-10-25 32 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

相关问题