我有一个文件名 mahelipaul_YYYYMMDDHHMMSS,我需要从文件中删除 HHMMSS 部分并将其分配给一个新变量。
我需要 mahelipaul_YYYYMMDD 格式的文件。我该怎么做?
答案1
最直接的
filename=mahelipaul_20201231235959
echo mv "$filename" "${filename%??????}" # remove the last 6 characters
如果看起来正确则删除回声。
可以做更复杂的事情来验证后缀是否为 14 位数字,并确保这些数字代表有效的时间戳。
答案2
使用 Bash,您可以使用“切片”从字符串中截取多个字符。听起来您想删除最后 6 个字符,可以这样做:(这只是 Glenn 的答案中的另一种方法)
$ filename=mahelipaul_20201231235959
$ echo "${filename::-6}" # remove the last 6 characters
mahelipaul_20201231
如果您想要相反的操作(仅保留最后 6 个字符,则如下所示:
$ filename=mahelipaul_20201231235959
$ echo "${filename:(-6)}" # keep only the last 6 characters
235959
请注意,我“只是”分配一个变量并打印新变量。您需要使用这些修改后的变量来创建新变量、文件或您实际想要执行的任何操作。
我发现这个Bash 参考真的很有用。