Rm

rm -f 以數字開頭的文件

  • January 16, 2017

我不小心將 CSV 文件的輸出重定向到我的目錄。我怎樣才能rm只保留以數字開頭的文件,而保留以字母開頭的文件?

mymachine$ ls
71.24         README.md        30            4.29
8             filter.sh        42.81         5.58         
8.36          purchases.csv    1,208.8       100          
16.7          2.56             21.78         269.96        

這樣的事情應該這樣做:

$ rm [0-9]*

echo請記住,在讓rm它們執行之前,您始終可以使用任何 globbing 參數。

$ echo [0-9]*
100 1,208.8 16.7 21.78 2.56 269.96 30 42.81 4.29 5.58 71.24 8 8.36

執行rm上面的命令後:

$ ls
filter.sh  purchases.csv  README.md

在這種情況下,您還可以輕鬆地find-regex-delete選項結合使用。

在文件夾中,首先測試您的文件選擇:

$ find . -regex "[^/]+/.*[0-9]+"

然後添加-delete選項:

$ find . -regex "[^/]+/.*[0-9]+" -delete

您的文件現已刪除:

$ ls
filter.sh  purchases.csv  README.md

始終首先檢查您的選擇,因為使用[^/]+/.*[0-9]+正則表達式將選擇任何末尾包含數字的文件(例如md5hdf5)。

請注意,find自動處理子目錄也是如此。如果您不想-maxdepth 1在正則表達式之前添加此內容。

對於 OS X 添加該-E選項。

引用自:https://unix.stackexchange.com/questions/114501