2017-05-01 2 views
0

Ich habe Logdateien, die ich gerne noch nicht komprimiert sehen würde (gzip) Ich habe dies und es funktioniert, aber es überprüft, ob die Dateien in .gz enden.UNIX - Negate (if-Anweisung)

#!/bin/bash 

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


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

Wie zeige ich die Dateien an, die nicht in .gz enden?

Ich versuchte

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

aber ich einen Syntaxfehler erhalten. Irgendwelche Vorschläge?

Antwort

0

Die Leerzeichen sind wichtig. Mit Leerzeichen können Sie wählen zwischen:

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 
0

Sie auch

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