我試過這個
$ls
casts.c endian.c ptr.c signed-unsigned-representations.c signed-unsigned.c test-hard-link.c
$for i in *.c;do mv "$i" "$i"__swa.c; done
$ls
casts.c__swa.c endian.c__swa.c ptr.c__swa.c signed-unsigned-representations.c__swa.c signed-unsigned.c__swa.c test-hard-link.c__swa.c
我知道因為我的 i 變數是 *.c 所以當我嘗試重命名并添加 (__swa.c) 部分時,它只會添加到變數名稱中。
我需要像這樣重命名檔案:
casts__swa.c endian__swa.c ptr__swa.c signed-unsigned-representations__swa.c signed-unsigned__swa.c test-hard-link__swa.c
uj5u.com熱心網友回復:
使用 Bash 的引數擴展,您可以執行以下操作:
for f in *.c; do
echo mv "$f" "${f%%.c}"__swa.c
done
(echo當然,洗掉它,如果它看起來像你想要的那樣)
但我通常更愿意使用更靈活的renamePerl,正如 Cyrus 在回答中所建議的那樣。
uj5u.com熱心網友回復:
使用 Perl 的獨立rename或prename命令:
rename -n 's/\./__swa./' *.c
如果輸出看起來不錯,請洗掉-n.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/366214.html
