分兩個步驟
步驟1、列舉出文件夾(包括子文件夾)下所有文件
兩種方法:
1)ls -R 遞歸列出文件,這個最簡單,推薦使用
2) find $PWD | xargs ls -d
步驟2、 使用grep根據關鍵字篩選出想要的文件
ls -R | grep .bag$ ($表示行尾搜索,即.bag是每行中最後的字符)
find $PWD | xargs ls -d | grep .bag$
2019.12.3日更新:
直接使用 find $PWD | grep .bag$就可以了,會列出路徑全名。
ps:
1、 這兩條命令今天晚上才知道。。之前自己遇到的最大問題就是不知道如何快速獲得一個文件夾下(含子文件)所有的文件,爲此還專門搜到了一個函數,實在是太naive了。(下面就是搜到的函數)
#! /bin/bash
function read_dir(){
for file in `ls $1` #注意此處這是兩個反引號,表示運行系統命令
do
if [ -d $1"/"$file ] #注意此處之間一定要加上空格,否則會報錯
then
read_dir $1"/"$file
else
echo $1"/"$file #在此處處理文件即可
fi
done
}
#讀取第一個參數
read_dir $1
2、 grep真香