我的一個朋友在 Windows 上以這種方式對大量文件進行分組
在我讓他切換到 Ubuntu 後,檔案不再根據前面感嘆號的數量進行排序,所以我想知道如何按照以下規則切換它們:
1
對於!
和!!
0
對於!!!
和!!!!
我想我應該使用 awk 但我不是專家,因此我在這裡..
答案1
答案2
在 python 腳本中:
#!/usr/bin/env python3
import os
import shutil
import sys
dr = sys.argv[1]
replace = ["!", "!!", "!!!", "!!!!"]
for f in os.listdir(dr):
test = [f.startswith(s) for s in replace]
if test.count(True) > 2:
shutil.move(dr+"/"+f, dr+"/"+"0"+f.replace("!", ""))
elif 0 < test.count(True) < 3:
shutil.move(dr+"/"+f, dr+"/"+"1"+f.replace("!", ""))
假設只出現在名稱的開頭,它將取代leading !!!!
and !!!
by 0
、and !!
and !
by 。1
!
使用它
- 將腳本貼到空文件中,另存為
rename.py
透過以下命令從終端機視窗運行它:
python3 /path/to/rename.py '<directory>'
其中
<directory>
是包含要重新命名的檔案的目錄。
答案3
您也可以使用基於 perl 的rename
命令,例如
rename -vn -- 's/^!{1,2}(?!!)/0/' *
匹配名稱開頭 ( )!
處不跟有一個或兩個字符,以及!
^
s替代0
;和
rename -vn -- 's/^!{3,4}(?!!)/1/' *
匹配名稱開頭 ( )!
處不帶 a 的三個或四個字符,以及!
^
s替代1
.
注意:該-n
開關允許您進行“試運行”,而無需實際更改名稱 - 首先測試表達式,n
如果您想繼續,則刪除 。