gpt4 book ai didi

linux - 根据字数重命名文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:01 25 4
gpt4 key购买 nike

是否可以根据文件的字数重命名目录中的一堆文件,如下所示:

对于folderA中的所有文件,获取它们的字数,然后根据它们的字数重命名

所以AMS_01_ex345_2012040000000_0001235.NEW,这个文件的字数是1234,它会被重命名为AMS_01_ex345_2012040000000_0001234.NEW

for x in $folder1 do exec grep -v "\""$x | 'wc -l' > "$x.NEW"

最佳答案

for f in $folder1/*; do
cnt=$(wc -l $f)
printf -v num "%07u" ${cnt% *}
mv $f ${f%_*}_$num.NEW
done

(为了测试你可以把echo放在mv之前,这样就不会发生破坏。)

首先,我们将 wc 命令的输出分配给变量 $cnt(例如 567 AMS_01_ex345_2012040000000_0001235.NEW)。然后我们只需要从中取出数字并用前导零格式化这个数字。 printf -v num 将结果分配给该变量。

${parameter%word} 在 bash 中将删除匹配的后缀模式。在第一种情况下,我们将从 $cnt 中删除最后一个空格及其后的所有内容。在我们的第二种情况下,将从 $f 中删除最后一个下划线及其后的所有内容。

编辑:这是计算行数,而不是字数。我对问题本身中 wc -l 的用法感到困惑。要计算字数,请使用 wc -w

关于linux - 根据字数重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31337992/

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