Bash脚本定期列出文件

 mobiledu2502861463 发布于 2023-02-09 11:20

我有一大堆文件,64,000,我想创建一个Bash脚本,列出使用的文件名

ls -1 > file.txt

每4,000个文件,并将生成的file.txt存储在一个单独的文件夹中.因此,每4000个文件的名称都列在存储在文件夹中的文本文件中.结果是

folder01包含列出文件#0-#4000的file.txt

folder02包含列出文件#4001-#8000的file.txt

folder03包含列出文件#8001-#12000的file.txt

.

.

.

folder16包含列出文件#60000-#64000的file.txt

非常感谢你提前

1 个回答
  • 你可以试试

    ls -1 | awk '
    {
        if (! ((NR-1)%4000)) {
            if (j) close(fnn)
            fn=sprintf("folder%02d",++j)
            system("mkdir "fn)
            fnn=fn"/file.txt"
        }
        print >> fnn
    }'
    

    说明:

    NR是awk中的当前记录号,即:当前行号.

    NR在第一行开始于1,因此我们减去1,使得第一行的if语句为真

    system 从awk中调用操作系统函数

    print 本身将当前行打印到标准输出,我们可以使用输出重定向(和追加)到文件 >>

    awk中所有未初始化的变量都将为零值,因此我们不需要j=0在程序的开头说明

    2023-02-09 11:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有