Sed Bash使用下划线重命名文件
我的文件名为CULT_2009_BARRIERS_EXP_Linear.dbfSed Bash使用下划线重命名文件,sed,rename,Sed,Rename,我的文件名为CULT_2009_BARRIERS_EXP_Linear.dbf 并希望将其重命名为 CULT_barries_EXP_Linear.dbf。 这些文件有一个日期前缀,它总是不同的,显示它被捕获的时间。 我试图用正则表达式替换它们。我想测试字符串是否包含数字,然后重命名。我用过 if [[ $file =~ [0-9] ]]; then rename -v "s/[0-9]//g" * && rename -v s/[_]_/_/ *; 部分有效。
并希望将其重命名为 CULT_barries_EXP_Linear.dbf。 这些文件有一个日期前缀,它总是不同的,显示它被捕获的时间。 我试图用正则表达式替换它们。我想测试字符串是否包含数字,然后重命名。我用过
if [[ $file =~ [0-9] ]]; then rename -v "s/[0-9]//g" * && rename -v s/[_]_/_/ *;
部分有效。但我理想情况下希望有一个重命名命令,因为这是一个很好的实践一个重命名命令就足够了。只需在实际存储
.def
文件的目录上运行以下命令
rename -v "s/_[0-9]+//g" *.dbf
[0-9]+
匹配一个或多个数字,[0-9]
将匹配一个数字字符+
将上一个标记重复一次或多次。或重命名-v“s/[0-9]+/g”*
或如果[[$file=~[0-9]];然后重命名-v“s/[0-9]+//g”*;谢谢。因此,[0-9]只替换第一个数字,+递归查找任何数字。因此,+
将上一个标记重复一次或多次。可能重复