[英]Linux bash script -
我正在尝试使用行是否包含日期作为if语句的条件:
if [grep -n -v '[0-9][0-9][0-9][0-9]' $line |wc -l==0]
then
...
以上返回错误。 我不一定需要使用grep。 grep处理的行如下所示:
1984 Dan Marino QB Miami Dolphins
任何帮助表示赞赏。
if [[ $(echo $line | grep -q '[0-9][0-9][0-9][0-9]') ]]; then
# do something
fi
您可以使用内置的bash进行检查:
re='\b[[:digit:]]{4}\b'
if [[ $line =~ $re ]] ; then
echo ok;
fi
[grep -n -v '[0-9][0-9][0-9][0-9]' $line |wc -l==0]
问题1: [(space).....(space)]
您需要那些空格
问题2:有没有[ foo==bar ]
你可以这样做[ $(echo "0") = "0" ]
或[[ $(echo "0") == 0 ]]
这里的$(echo "0")
例如$(echo "0")
,则应填写命令。
您可以使用-q
选项调用grep并检查返回值:
if [ $(grep -qv '[0-9][0-9][0-9][0-9]' $line) -eq 0 ]; then
# ...
fi
使用命令替换和正确的bash语法。
[[ "`grep -n -v '[0-9][0-9][0-9][0-9]' $line | wc -l`" -eq 0 ]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.