Linux下替换指定的目录及其子目录下所有文件中的某些内容(3种方法)

题目:把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中,文件包含oldboy的字符串全部替换为oldgirl

手续创建环境:

mkdir -p /oldboy/test
cd /oldboy
echo "oldboy">test/del.sh
echo "oldboy">test.sh
echo "oldboy">t.sh
touch oldboy.txt
touch alex.txt

这里写图片描述
接下来进行实际替换:

  • 方法1:find -type f -name “*.sh” | xargs sed ‘s#oldboy#oldgril#g’ -i

    这里写图片描述

sed 的 -i 参数代表修改文件 所以可以先sed看效果 然后加-i 参数实际修改
由于sed命令后面的参数接的是文件名 所以配合 xargs参数使用

  • 方法二:$()或“
sed 's#oldboy#oldgril#g' `find -type f -name "*.sh"`
sed 's#oldboy#oldgril#g' $(find -type f -name "*.sh")

这里写图片描述

$() ===“ 这个命令是把里面的预计当做命令来执行
所以sed 后面要求的参数是文件名 正好是 find执行后的结果

  • 方法三:find -type f -name “*.sh” -exec sed ‘s#oldboy#oldgirl#g’ {} \;

    这里写图片描述

使用find 本身的参数 -exec 来执行命令 注意{} \; 的使用方式即可

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值