2つのコマンドで出力された数値が等しいかどうかを自動的に確認するには?

2つのコマンドで出力された数値が等しいかどうかを自動的に確認するには?

2つのgrepコマンドがあるとしましょう。

grep -rno 'foo' --include \*.txt|wc -l
grep -rno 'bar' --include \*.txt|wc -l

出力が同じであることを自動的に確認し、それに応じて「はい」または「いいえ」を印刷するにはどうすればよいですか?これを行うにはスクリプトが必要かもしれないと思いましたが、そうでないかもしれません。

ベストアンサー1

test "$(grep -rno 'foo' --include \*.txt|wc -l)" = "$(grep -rno 'bar' --include \*.txt|wc -l)" && echo Yes || echo No

または

var1=$(grep -rno 'foo' --include \*.txt|wc -l)
var2=$(grep -rno 'bar' --include \*.txt|wc -l)
test "$var1" = "$var2" && echo Yes || echo No

シェルの下では、実行するすべてがスクリプトになります。スクリプトで作成するかどうかは、スクリプトの複雑さと実行頻度によって異なります。

おすすめ記事