仅当第二字段与给定字符串匹配时,如何获取文件的第一字段?
#cat temp.txt
Ankit pass
amit pass
aman fail
abhay pass
asha fail
ashu fail
cat temp.txt | awk -F"\t" '$2 == "fail" { print $1 }'*
不提供任何输出
答案 0 :(得分:0)
当我最后删除*
时,您的代码似乎可以正常工作
cat temp.txt | awk -F"\t" '$2 == "fail" { print $1 }'
要检查的另一件事是文件是否使用制表符或空格。我的数据文件复制/粘贴复制了空格,因此我需要这一行:
cat temp.txt | awk '$2 == "fail" { print $1 }'
另一种方法是使用grep:
cat temp.txt | grep fail$ | awk '{ print $1 }'
答案 1 :(得分:0)
awk的另一种语法:
awk '$2 ~ /^faild$/{print $1}' input_file
已删除的“猫”命令。
这是匹配彭定康的最佳方法。
答案 2 :(得分:0)
要么:
使用GNU cat
,您可以运行cat -Tev temp.txt
来查看制表符(^I
),CR(^M
)和行尾($
)。