我对bash很新,所以如果这是一个愚蠢的问题我会道歉。
我正在尝试编写一个脚本,它接受一个文件并测试它是否以html结尾。这是我的代码:
echo tester.html | grep -E '[^ ]*[.html]'
然而,它回应了我给它的每一个输入,我该如何解决它?
答案 0 :(得分:1)
echo tester.html | grep -q '\.html$' && echo "MATCH" || echo >&2 "NO MATCH"
或bash
x=tester.html
[[ $x == *html ]] && echo "MATCH" || echo >&2 "NO MATCH"
&&
& ||
布尔语法是if condition; then something; else something_else; fi
的缩写,请参阅http://mywiki.wooledge.org/BashGuide/TestsAndConditionals
注意强>
- 在regex中使用[]
表示字符类(一组字符)
答案 1 :(得分:0)
我在sputnik的帮助下解决了这个问题。
这是:
echo tester.html | grep -E *html
这是有效的,
谢谢大家。