0
我有一噸的文件被命名如下:bash腳本循環刪除特定指數
nn - xxxxxxxxxxxxxx-OOO.ext
哪裏nn
始終是一個兩位數字和xxxxx
是文字的可變長度。 (-OOO的後綴在所有文件中都是靜態的)。應在環路什麼文件重命名爲:
xxxxxxxxxxxxxx.ext
從而去除nn -
(總第5個字符)和-OOO
。
我有一噸的文件被命名如下:bash腳本循環刪除特定指數
nn - xxxxxxxxxxxxxx-OOO.ext
哪裏nn
始終是一個兩位數字和xxxxx
是文字的可變長度。 (-OOO的後綴在所有文件中都是靜態的)。應在環路什麼文件重命名爲:
xxxxxxxxxxxxxx.ext
從而去除nn -
(總第5個字符)和-OOO
。
你可以做到這一點有兩個子業務:
$ name="nn - xxxx x xx xx xxxxx-OOO.ext"
$ part1=${name:5} # substring starting at position 5
$ part2=${part1%-OOO.ext} # remove `-OOO.ext` at the end of $part1
$ final="$part2".ext
$ echo $final
xxxx x xx xx xxxxx.ext
$ mv "$name" "$final"
echo $file_name | sed "s/.*-\s*\(.*\)-.*/\1.ext/"
會給你「xxxxxxx.ext」你問的OP。
我在循環構造中遇到了一些麻煩。你能否也展示一下? – 2012-01-01 15:39:48
到目前爲止你對此有什麼看法?爲什麼你要求循環中應該發生什麼? – Mat 2012-01-01 15:41:31
我目前有「for * in * .ext;」,但我不知道如何獲取文件名。 – 2012-01-01 15:45:01