私の友人は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("!", ""))
が名前の先頭にのみ出現する!!!!
と仮定すると、先頭の および!!!
が に、およびが に置き換えられます。0
!!
!
1
!
使用するには
- スクリプトを空のファイルに貼り付け、
rename.py
ターミナル ウィンドウから次のコマンドで実行します。
python3 /path/to/rename.py '<directory>'
<directory>
名前を変更するファイルを含むディレクトリです。
答え3
Perlベースのrename
コマンドを使用することもできます。例:
rename -vn -- 's/^!{1,2}(?!!)/0/' *
名前の先頭( )!
の後に a が続かない1文字または2文字に一致し、!
^
s代替0
;および
rename -vn -- 's/^!{3,4}(?!!)/1/' *
名前の先頭( )!
に a が続かない3文字または4文字に一致し、!
^
s代用する1
。
注:-n
スイッチを使用すると、実際に名前を変更せずに「ドライ ラン」を実行できます。最初に式をテストし、n
続行する場合は削除します。