[英]Replacing characters in a sh script
我正在編寫一個 sh 腳本,需要替換.
和-
一個_
當前的:
V123_45_678_910.11_1213-1415.sh
通緝:
V123_45_678_910_11_1213_1415.sh
我已經使用了一些mv
命令,但我遇到了麻煩。
for file in /virtualun/rest/scripts/IOL_Extra/*.sh ; do mv $file ${file//V15_IOL_NVMe_01./V15_IOL_NVMe_01_} ; done
${variable//pattern/replacement}
是一個 bash 擴展。 在 sh 你需要這樣的東西:
for src in /virtualun/rest/scripts/IOL_Extra/*.sh; do
# do replacements on name only
dest=$(printf '%s' "${src##*/}" | tr .- __)
# correct extension
dest=${dest%_sh}.sh
# prepend path
dest=${src%/*}/$dest
# rename
echo mv "$src" "$dest"
done
如果 output 看起來不錯,請刪除echo
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.