linux - 如何删除文件名中的转义字符?

标签 linux perl bash

我想从文件名中删除转义字符,所以这些例子

=Web_Help_Desk_Pro%26Lite.pdf
=Windows_7_%2b_s-drev.pdf

会变成

=Web_Help_Desk_ProLite.pdf
=Windows_7__s-drev.pdf

有谁知道如何在 Perl 或 BASH 中执行此操作?

最佳答案

如果 $file 是你的文件名:

my $file = '=Web_Help_Desk_Pro%26Lite.pdf';
$file =~ s/%[0-9a-f]{2}//gi;

即将 % 后跟两个十六进制字符替换为空字符串。

关于linux - 如何删除文件名中的转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795996/

相关文章:

string - Perl 范围字符串 ID

perl - 当我只期待一个匹配时,我可以将 grep(或 map)限制为第一个匹配吗?

bash - wait $! 是什么意思?意思是

linux - 在 Mac 上安装 bash 程序

Bash 模式匹配与 rm 命令

Python shell 脚本使用 +F 选项打开更少

android - Linux : Udp packet is kept in buffer or dropped when network is unreachable? 我怎么证明呢?

Perl 脚本执行监控工具

linux - 如果内核是交叉编译的,我必须交叉编译模块吗?

linux - 在文件的一列中搜索并替换空值和点