我有一個包含多個文件的目錄。我需要重命名這些文件。從mv文件中刪除前綴和後綴
這是文件名的樣子:
snap-file-name-1.txt
snap-file-name-2.txt
snap-file-name-3.txt
我需要從這些文件中刪除「捕捉」和「.TXT」。
-file-name-1
-file-name-2
-file-name-3
如何使用mv
命令做到這一點?
我有一個包含多個文件的目錄。我需要重命名這些文件。從mv文件中刪除前綴和後綴
這是文件名的樣子:
snap-file-name-1.txt
snap-file-name-2.txt
snap-file-name-3.txt
我需要從這些文件中刪除「捕捉」和「.TXT」。
-file-name-1
-file-name-2
-file-name-3
如何使用mv
命令做到這一點?
用sed來操作文件名:
ls | while read file; do
mv -- ${file} $(sed -n 's/snap\(.*\).txt/\1/p' <<<${file})
done
使用bash,你可以做這樣的事情來重命名這些文件:
#!/bin/bash
files=$(find -type f -name 'snap-file-name-*.txt')
for f in $files
do
mv "$f" "$(echo $f | sed -n 's/snap\(.*\).txt/\1/p')"
done
使用rename
命令與特定的正則表達式:
rename 's/snap([-a-z0-9]+)\.txt$/$1/' *.*
你嘗試過'rename'命令嗎? – RomanPerekhrest
我試過了,但沒有奏效:重命名'rename's/\。txt $ //'*。*' – Asdfg