我有一个文件abc.txt,内容为:
8503 C
8501 C
8500 C
我想通过以下方式验证文件内容:
对于8503
-值必须为“ C”
如果是,那么成功
否则失败
应该对文件中的所有内容重复
即。假设文件是否包含:
8503 E
8501 C
8500 C
现在8503
的值为“ E”,那么它是失败的。
8501的值为“ C”表示成功
我该如何使用shell脚本?
我尝试了以下命令:
awk -F ' ' '$2 != "C" { echo "Value is not C for happy path" }' < /tmp/abc.data
但是它给了我空白输出而没有显示回声。
我想查看文件的第二列是否具有除“ C”之外的任何值,那么它是失败的。
感谢任何输入。
谢谢
答案 0 :(得分:2)
如果您想查看第2列中是否有任何不是“ C”的值,这会导致“失败”,那么:
awk '$2!="C"{e=1;exit}END{print e?"fail":"success"}'
答案 1 :(得分:0)
只是为您的awk
脚本提供帮助:您的错误是使用echo
,这不是有效的awk命令。请改用print
:
awk '$2 != "C" { print "Value is not C for happy path" }' < /tmp/abc.data
(我删除了不必要的-F
选项:用空格分隔的字段是默认选项)
但是,正如Walter在评论中所述,在您的情况下,仅使用grep
命令就足够了(使用GNU sed
在此处添加标题行):
grep E$ /tmp/abc.data | sed '1i Error lines:'