Bash 脚本用于删除文件名中的最后三个字符



例如,文件是这样的:

NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN:00

我想将此文件重命名为:

NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN

使用 ${parameter%word} (删除匹配的后缀模式):

$ echo "$fn"
NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN:00
$ echo "${fn%:*}"
NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN

使用 cut

$ echo $fn
NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN:00
$ echo $fn |cut -d: -f1
NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN

使用 awk

echo $fn |awk -F : '{print $1}' 

更多方式...

根据此处的链接:这应该有效:

awk '{old=$0;gsub(/...$/,"",$0);system("mv ""old"" "$0)}'

前提是文件名作为输入给出。例如:

ls -1 NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN:00|nawk '{old=$0;gsub(/...$/,"",$0);system("mv ""old"" "$0)}'

使用 bash 字符串操作重命名文件:

# Filename needs to be in a variable
file=NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN:00
# Rename file
mv "$file" "${file%???}"

这将从文件名中删除最后三个字符。

只使用 bash:

fn='NBDG6_CDRCCN_4004_-TTNBDG6_CCN_51-140108-1433-802580.00.Blk32768Blk.CCN:00'
mv "$fn" "${fn::-3}"

如果你有Ruby

echo NBDG6_CD* | ruby -e 'f=gets.chomp;File.rename(f, f[0..-4])'

相关内容

  • 没有找到相关文章

最新更新