繁体   English   中英

Linux bash脚本-

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM