簡體   English   中英

使用正則表達式批量重命名文件不起作用

[英]Batch rename files with regex not working

我在 linux 服務器上有很多文件具有這種格式text_text_mixturelettersnumbers.file例如Hesperocyparis_goveniana_E00196073A.bam.baiHesperocyparis_forbesii_RBGEH19_bwa_out.txt 我想將第一個下划線更改為連字符並保留其他所有內容,因此它看起來像這個text-text_mixturelettersnumbers.file

我試過rename -n 's/(\\w+)_(\\w+_.)/$1-$2/' *及其許多不同的版本,但什么也沒發生。 有人可以指出我有什么問題嗎?

謝謝

馬庫斯

util-linux重命名沒有僅顯示結果的選項。 這是非常基本的。

如果要列出擴展名前包含兩個下划線的文件,請使用

for f in *_*_*.*; do
  echo "$f => ${f/_/-}";
done

要實際重命名,請使用mv

for f in *_*_*.*; do
  mv -- "$f" "${f/_/-}";
done

"${f/_/-}"將第一個_替換為-在變量f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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