AWK:仅打印带通配符的行

时间:2017-04-01 16:44:03

标签: bash awk

我有以下file.txt

string1 <TAB> A21332
string2 <TAB> A45221
string3 <TAB> 
string4 <TAB> A92092

我想使用awk打印第2列以'A'开头的行

这是我的代码

awk -F$'\t' '$2 ~ "A" {print $0}' file.txt

但它不起作用......

1 个答案:

答案 0 :(得分:3)

使用Awk如下所示,使用正则表达式构造^来表示字符串开始

awk -v FS=$'\t' '$2 ~ "^A"' file
string1 A21332
string2 A45221
string4 A92092

删除bash特定$'\t'语法,您可以将其用作

awk -vFS="\t" '$2 ~ "^A"' file

并删除GNU Awk特定-vFS=语法&amp;将限制器初始化为BEGIN子句

的一部分
awk 'BEGIN{FS="\t"}$2 ~ "^A"' file 

并删除动态正则表达式,只使用// de-limiter作为

awk 'BEGIN{FS="\t"}$2 ~ /^A/' file