我在一個目錄多個文件命名,如:重命名多個 「STR1 - str2.txt」 文件 「STR2 - str1.txt」
str1 - str2.txt
如何在bash它們重命名爲:
str2 - str1.txt
str1
- 是一個字符串,其中包含字母數字字符,空格以及某些情況下的一個或多個-
字符。str2
- 是一個只包含字母數字字符的字符串。
我可以使用rename 'y/str1 - str2/str2 - str1/' *
命令逐個重命名它們,但是我想找到一個合適的正則表達式來在同一時間重命名所有文件。
沒有得到你。你有沒有嘗試以上?你有什麼輸出? '\ 1'和'\ 2'表示正則表達式匹配組,不是實際的'1'和'2'。如果它不起作用,你可以舉一些它不起作用的例子嗎? –
不錯的答案,它解決了我的問題。 –
某些「prankster」會在該目錄中刪除一個名爲'mv; rm -rf〜'的文件,您可能會遇到麻煩。你想'sed -nr'/ ^([[:alnum:]] *) - ([[:alnum:]] *)\ .txt $/s // mv \ 2 \ 1.txt/p'',如果沒有別的,因爲這是一個不好的習慣,讓你的警衛這樣下去。 – jthill