讀取一個文件夾下所有的符合條件的文件名

分兩個步驟

步驟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真香

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章