我有一些名称包含日期的文件,但是这个日期部分格式错误,我需要更改它。示例文件:
foo-1-21-01-16.tar
foo-1-22-01-16.tar
foobar-1-21-01-16.tar
foobar-1-22-01-16.tar
我想要的结果应该是这样的:
foo-1-16-01-21.tar
foo-1-16-01-22.tar
foobar-1-16-01-21.tar
foobar-1-16-01-22.tar
那么,我想做的是用“年”部分的地方改变“日”部分的地方。但我无法弄清楚如何做到这一点。有多个文件,所以我不能手动执行此操作。
答案 0 :(得分:1)
您建议您使用AWK。例如:
echo "foo-1-21-01-16.tar" | awk -F'[-.]' '{printf "bar-%s-%s-%s-%s.%s", $2, $5, $4, $3, $6 }'
将导致bar-1-16-01-21.tar
。 -F参数告诉awk分割-
或.
上的每一行输入。分割后,$1 = foo
,$5 = year
等使用print
以另一个顺序重新组合每个字段的文件名。
从 bash脚本中,遍历您的文件,使用上面的命令创建新文件名,然后使用mv
重命名该文件。如果您需要代码示例,请告诉我。