linux 中 xargs、cut 以及管道综合应用

熟练掌握 linux 各种命令以及管道的使用,无疑让工作效率大幅增加。笔者在做实验时,免不了各种文件的频繁操作,而且文件数量庞大,若以手工方式处理,效率低下不说,还容易出错。今天,结合一个具体实例场景,来谈谈 linux 中 xargs、cut 以及管道的使用。备忘之,分享之。

1.批量新建文件夹

这里写图片描述
在当前路径下新建两个文件夹,并进入 alltxt 文件夹,批量创建100个文件夹:

cd alltxt
mkdir {1..100}

为简便起见,文件夹命名为1至100,如下所示:
这里写图片描述

2.在新建的100个文件夹下批量新建6个文件

ls | xargs -i touch {}/1_1_1.txt 
ls | xargs -i touch {}/1_1_2.txt 
ls | xargs -i touch {}/1_1_3.txt
ls | xargs -i touch {}/1_1_4.txt
ls | xargs -i touch {}/1_1_5.txt   
ls | xargs -i touch {}/1_1_6.txt 

xargs 中的 -i 参数表示将 xargs 的每项名称一项一项赋值给 {}.

随便进入一个文件夹,查看是否创建成功:
这里写图片描述

现在的需求是,在 test 文件目录中创建同样的目录结构,且将 alltxt 中每个目录下的 1_1_3.txt 文件复制到对应文件夹中。

3.进入 test 目录,创建与 alltxt 目录相同的子目录结构

cd test/
ls ./../alltxt/ | xargs -i mkdir {}

4.查找并分割出想要的文件

find . -name *_1_3.txt | less

这里写图片描述

find . -name *_1_3.txt | cut -d / -f 2-3 | less

这里写图片描述

cut 中的 -d 参数表示自定义分隔符,默认为制表符;
cut 中的 -f 与 -d 一起使用,指定显示那个区域;

5.将指定文件复制到 test 中对应的文件夹中去

find . -name *_1_3.txt | cut -d / -f 2-3 | xargs -i cp {} ./../test/{}

随便进入 test 中的一个文件夹,查看显示结果:
这里写图片描述

到此,大功告成!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号模式或绝对模式 7 1.5 目录 7 1.6 suid/guid 7 1.6.1 为什么要使用suid/guid 8 1.6.2 设置suid/guid的例子 8 1.7 chown和chgrp 9 1.7.1 chown举例 9 1.7.2 chgrp举例 9 1.7.3 找出你所属于的用户组 9 1.7.4 找出其他用户所属于的组 10 1.8 umask 10 1.8.1 如何计算umask值 10 1.8.2 常用的umask值 11 1.9 符号链接 12 1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 17 2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 23 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准输出 41 5.7.2 重定向标准输入 42 5.7.3 重定向标准错误 42 5.8 结合使用标准输出和标准错误 43 5.9 合并标准输出和标准错误 43 5.10 exec 44 5.11 使用文件描述符 44 5.12 小结 45 第6章 命令执行顺序 46 6.1 使用&& 46 6.2 使用|| 46 6.3 用()和{ }将命令结合在一起 47 6.4 小结 48 第二部分 文本过滤 第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 5

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值