UNIX - 否定(如果声明)

时间:2017-05-01 19:09:39

标签: unix if-statement logical-operators

我有日志文件,我希望看到还没有压缩(gzip) 我有这个,它的工作原理,但它检查文件是否以.gz结尾。

#!/bin/bash

LOG_FILES=(
   "/Sandbox/logs/*"
)


for file in ${LOG_FILES[@]}; do
   if [[ $file =~ \.gz$ ]]; then
      echo $file
   fi
done

如何显示不以.gz结尾的文件?

我试过

![ $file =~ \.gz$ ]
!( $file =~ \.gz$ )

但是我收到语法错误。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

空间很重要。有了空格,您可以选择:

for file in ${LOG_FILES[@]}; do
  if [[ ! $file =~ \.gz$ ]]; then
   echo $file
  fi
done


for file in ${LOG_FILES[@]}; do
  if ! [[ $file =~ \.gz$ ]]; then
   echo $file
  fi
done

答案 1 :(得分:0)

您也可以

if [[ "$file" != *.gz ]]; then
      echo "$file is not gz"
fi