2013-07-16 27 views
0

我有一個文件夾不斷添加從其他用戶的文件夾。我想用一個bash腳本比較這些文件的文件名中的前三個字符,以及它們是否相同。Bash腳本壓縮所有開始相同的字符的文件

我是bash(或任何)腳本的新手,所以任何幫助將不勝感激。

+1

'我是一個新手來打擊...' - 你想保持*現狀*! – devnull

回答

0

關鍵部分是find命令。它只是選擇當前目錄中的文件與路徑的最後部分(文件名)的前三個字母匹配:

find . -maxdepth 1 -type f -regex '.*/fil.*' -print 

而現在只需提供輸出到您喜歡的壓縮工具:

對於bzip2文件中使用tar

tar -cjf myfile.tbz2 $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print) 

對於zip文件中使用7z

7z a myfile.zip $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print) 
0

這裏找到獨特的3個字符的技術前綴

command ls | grep -o '^.\{1,3\}' | sort -u 

小心包含文件名具有少於3個字符。

這不會將列表限制爲文件,也不會拾取隱藏的文件。