0

私は bash に非常に慣れていないので、これがばかげた質問である場合は申し訳ありません。

ファイルを受け取り、それが html で終わるかどうかをテストするスクリプトを作成しようとしています。これが私のコードです:

echo tester.html | grep -E '[^ ]*[.html]'

それでも、私が与えるすべての入力をエコーし​​ます。どうすれば修正できますか?

4

2 に答える 2

1
echo tester.html | grep -q '\.html$' && echo "MATCH" || echo >&2 "NO MATCH"

または

x=tester.html
[[ $x == *html ]] && echo "MATCH" || echo >&2 "NO MATCH"

&&&||ブール構文は のショートカットです。http://mywiki.wooledge.org/BashGuide/TestsAndConditionals をif condition; then something; else something_else; fi参照してください。

-正規表現[]での使用は、文字クラス(文字のセット) を意味します

于 2012-10-23T01:30:08.437 に答える
0

スプートニックの助けを借りて解決しました。

ここにあります:

echo tester.html | grep -E *html 

そしてこれはうまくいきます、

皆さんありがとう。

于 2012-10-23T01:43:56.597 に答える