linux grep,wc命令在bash中做什么[关闭]

ao218c7q  于 2023-06-21  发布在  Linux
关注(0)|答案(2)|浏览(115)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

3天前关闭。
截至3天前,社区正在审查是否重新讨论此问题。
Improve this question
我有一个动手的程序,验证我的输出的基础上设置的命令。使用的命令如下。
javac Main.java && if [[ $(java Main AbcDef 1 2 | grep 4 | wc -l) -eq 1 ]]; then echo "Test Passed";elif [ $(java Main AbcDef 1 2 | grep 4 | wc -l) -eq 0 ]; then echo "Test failed"; fi
程序将返回一个数字。main.java包含代码。谁能解释一下如何解析或者第一个if和else if条件是什么?
我试着检查每个命令的功能。发现-eq将与==相同,但仅用于数字。上面例子中的其他命令和用法很少,但令人困惑。

sh7euo9m

sh7euo9m1#

wc -l

会给予你行数。

grep 4

将只输出字符“4”所在的行。
你的命令是:
运行:java Main AbcDef 1 2
并从该输出中只保留包含“4”的行:grep 4
然后对过滤后的行进行计数:wc -l

如果有1行测试通过:-eq 1
否则有0行测试失败:-eq 0

希望能帮上忙。

8cdiaqws

8cdiaqws2#

grep查找与正则表达式模式匹配的行

0
5
4

会变成

4

而grep. wc表示字数,所以它计算字数。本质上,这个测试是在寻找一个输出4的行。
-eq 1是pass,所以程序需要打印4。不是零分。

相关问题