Linux系统的/temp目录下有大量目录和文件,现在需要找出该目录下所有以test开头的txt文件,并将其中的字符aaa改了bbb?请给出相关的命令。

毕业马上两年了,感觉自己还是菜,但卷又卷不动,躺又躺不平,学不进去东西,就找点公众号面试题瞅瞅,做下。因为发现看了的知识真的很容易忘。由于菜,所以一道一道的写,本次题目来自公众号:Kubernetes生态圈 。在这里插入图片描述
纯粹出于菜逼对大佬的敬仰,同时想写一遍记录下不那么容易忘,如有侵权,麻烦联系下,我会尽快删除,同时感谢分享,公众号大哥长生不老,永远不死。

Linux系统的/temp目录下有大量目录和文件,现在需要找出该目录下所有以test开头的txt文件,并将其中的字符aaa改了bbb?请给出相关的命令

思路:
这个题目感觉先分解下再组合下:
1.找文件。 找文件的话find肯定还是不错的

find /temp -type f -name 'test*.txt'
这句的意思是找tmp目录下的文件(非目录),名称中符合test开头的txt类型文件

2.改字符。改字符这种操作的话习惯性选shell三剑客,感觉可以用awk来写,但遵守特性的话处理文本还是sed吧

sed -i 's/aaa/bbb/g'
直接对原文件操作,搜索aaa并全局替换成bbb

3.把这俩拼起来。find这里正常习惯使用的还是exec

find /temp -type f -name 'test*.txt' -exec sed -i 's/aaa/bbb/g' {} \;

4.第三步拼起来的命令,基本可以完成,但是在题目中要求是大量的文件,所以还得用+效果会好点儿

find /temp -type f -name 'test*.txt' -exec sed -i 's/aaa/bbb/g' {} +
+即匹配尽可能多的文件去执行,第三步的命令是查到一个去执行一个相对来说执行效率较低
  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自己的路口

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值