簡體   English   中英

替換 sh 腳本中的字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM