Grep
如何grep文件夾A和(文件夾A內的文件夾B)中的所有文件名?
我想列出文件夾A中的所有文件名和文件夾A中的另一個****文件夾B,並將其保存到文本文件中。我使用的程式碼是:
ls -1 /home/CSV_XXX/* | grep ^'/home/CSV_XXX' >/home/Lists.txt
假設我在目錄“ /home/CSV_XXX ”中有一個名為****CSV_XXX的文件夾,其中包含:
20161010 BDL_EXISTING_CARDS2_20161228.CSV BDL_EXISTING_COLLATERAL_20161228.CSV BDL_EXISTING_CUST_ADDRESS_20161228.CSV . . .
’ 20161010 ’ 是 CSV_XXX 內的文件夾**,**目錄為 ’ /home/CSV_XXX/20161010 ’ & 包含:
BDL_EXISTING_CARDS2_20161010.CSV BDL_EXISTING_COLLATERAL_20161010.CSV BDL_EXISTING_CUST_ADDRESS_20161010.CSV . . .
但是,我無法得到我想要的。
在我的第一次嘗試中,我得到了:
/home/CSV_XXX/BDL_EXISTING_CARDS2_20161010.CSV /home/CSV_XXX/BDL_EXISTING_COLLATERAL_20161010.CSV /home/CSV_XXX/BDL_EXISTING_CUST_ADDRESS_20161010.CSV . . . /home/CSV_XXX/20161010:
沒有文件夾 20161010 中的內容列表
另外,如果我改變主意將目錄“ /home/CSV_XXX/ ”從列表中刪除,如何刪除它?
只是列表(包括20161010):
BDL_EXISTING_CARDS2_20161228.CSV BDL_EXISTING_COLLATERAL_20161228.CSV BDL_EXISTING_CUST_ADDRESS_20161228.CSV . . .
您可能會更好地使用該
find
命令例如
find /home/CSV_XXX -type f -print
將遞歸列出 CSV_XXX 目錄下所有目錄中的所有文件。
如果您只想要匹配模式的文件,那麼您可以執行類似的操作
find /home/CSV_XXX -type f -name '*.csv' -print
並且只會列印以
.csv
如果您想在列表中包含目錄,則只需跳過該
-type f
部分。刪除目錄前綴;
( cd /home/CSV_XXX ; find * -type f -name '*.csv' -print )