在bash中使用正则表达式打印文件名

时间:2018-03-05 13:59:18

标签: linux bash

使用以下命令即可打印出*.crt, *.key, *.csr个文件

for i in $(find . -maxdepth 1 -mtime +90 -type f -ls | egrep "crt|key|csr" | awk '{print $NF}'); do echo "FILE: $i" done

我必须检查*.crt个文件以找出那是什么类型的证书,所以我使用以下命令打印出我需要的信息

openssl x509 -in $i -issuer|head -1

如何忽略其他文件并仅对我的循环中的openssl文件执行crt

1 个答案:

答案 0 :(得分:1)

while IFS= read -rd '' file; do
    #do something with crt files
    if [[ $file = *.crt ]]; then
        echo "check cert"
    fi
    #do something with all files
    echo "$file"
done < <(find . -maxdepth 1 -type f -mtime +90 \( -name "*.crt" -o -name "*.key" -o -name "*.csr" \) -print0)