gpt4 book ai didi

linux - AWK 使用的替代方案

转载 作者:行者123 更新时间:2023-12-01 03:56:10 25 4
gpt4 key购买 nike

我很想有一个更优雅的解决方案来批量重命名文件,如下所示。文件格式为 DEV_XYZ_TIMESTAMP.dat我们需要它们作为 T-XYZ-TIMESTAMP.dat .
最后,我将它们全部(在同一侧)复制到 renamed文件夹:

ls -l *dat|awk '{system("cp " $10 " renamed/T-" substr($10, index($10, "_")+1))}'

因此,首先我列出了所有 dat 文件,然后选取第 10 列(文件名)并使用 awk 的系统函数执行命令。
该命令本质上是将原始文件名复制到具有新文件名的重命名文件夹中。
通过在(包括)_ 之前删除(awk 子字符串函数)前缀并添加“T-”前缀来创建新文件名。

有效地:
cp DEV_file.dat renamed/T-file.dat

有没有办法使用 cpmv与一些正则表达式规则一起以更优雅的方式实现相同的目标?

谢谢

最佳答案

你可以使用这个脚本:

for file in *.dat; do
f="${file//_/-}"
mv "$file" renamed/T-"${f#*-}"
done

You must avoid parsing output of ls command.

关于linux - AWK 使用的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61010458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com