2017-02-23 82 views
0

如何在字符前后移除单个下划线(_)?我有大量命名为喜欢Linux使用命令行在字符前后移除单个下划线

filename_part_one _-_ filename_part_two.file

为了让文件名我用rename 'y/A-Z/a-z/' *为小写和rename 's/ /_/g' *剥离空白上述格式的文件。最后一步是在 - 之前和之后删除下划线。最好使用一行命令。

回答

1

_-_替换为-使用s/_-_/-/。你可以把它全部归为一个参数来重命名:

touch "FileName Part one_-_filename_part_two.file" 
rename 'y/A-Z/a-z/; s/ /_/g; s/_-_/-/' "FileName Part one_-_filename_part_two.file" 
ls *.file 
> filename_part_one-filename_part_two.file 
+0

我用重命名'y/A-Z/a-z/s// _/g; s/_-_/- /'*但是这并不代替_-_这个:filename_part_one-filename_part_two.file < - 这是我需要的文件名结尾 –

+0

@SteveFitzsimons我想你想替换“_-_”和“ - ”?我相应地改变了答案。 –

+0

发现一些文件有_-_两次。只需重新运行命令即可更改它们 –