繁体   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