只有grep显示错误

问题描述 投票:0回答:1

我正在使用macOS Sierra,它有bash版本3.2.57(1)-release。我想使用shasum -c /files.txt > /out.txt验证文件的校验和,其中files.txt包含校验和,out.txt是保存结果的地方。

我想要做的是以某种方式使用grep过滤掉并仅将错误保存到out.txt。这怎么可能? $?可以为此派上用场吗?

谢谢


附加信息:

--BEGIN /file.txt CONTENTS--
865f34fe7ba81e1337ddbdfc511547d190367bbf3dad21aeb6da3eec621044f5  /samplefile.good
93ddaab2f672ff976756f50677646cafebabe93244f615e687db01399cf3fbc6  /samplefile.bad

--END /file.txt CONTENTS--


--BEGIN USER INTERACTION--

$ shasum -c file.txt
/samplefile.good: OK
/samplefile.bad: FAILED
shasum: WARNING: 1 computed checksum did NOT match

$ shasum -c file.txt 2> errors.txt
/samplefile.good: OK
/samplefile.bad: FAILED

$ cat errors.txt
shasum: WARNING: 1 computed checksum did NOT match

$ shasum -c file.txt 2>&1 > errors.txt
shasum: WARNING: 1 computed checksum did NOT match

$ cat errors.txt
/samplefile.good: OK
/samplefile.bad: FAILED

--END USER INTERACTION--

这就是我想要的:

$ cat errors.txt
/samplefile.bad: FAILED

要么

$ cat errors.txt
/samplefile.bad: FAILED
shasum: WARNING: 1 computed checksum did NOT match
bash macos grep macos-sierra errorlevel
1个回答
0
投票

您不需要使用grepshasum命令中获取各种错误:

$ shasum -c file.txt 2> errors.txt
$ cat error.txt 
shasum: file.txt: no properly formatted SHA1 checksum lines found

但是如果你真的想要捕捉到某种错误,那么你确实可以像这样使用grep

$ shasum -c file.txt 2>&1 | grep -i "no properly formatted" > errors.txt
© www.soinside.com 2019 - 2024. All rights reserved.