最新消息:博客的意义不在于数量,在于原创。

Centos & Mac OS X批量修改文件名和批量替换文件内容

Linux 辰 羽 15705浏览 0评论

最近使用shell写一个工具,因为需要满足自己的电脑(Mac)和公司开发机(Centos)上使用,遇到了批量修改文件名和批量替换文件内容的问题,

咱们先来看修改文件名,如果你的脚本只需要在Linux上使用:

find . -name "class_user*" -type f | xargs rename "user" "username"  # 先寻找class_user开头的所有文件,然后将class_user修改成class_username

但是问题来了,Mac上默认并没有rename命令,即时你使用brew安装rename,它的使用方法也不同,如果需要你自己去了解,所以这里提供一个兼容的命令

find . -name "class_user*" -type f | awk -F'user' '{printf("mv %s %s \n", $0, $1"username"$2)}' | bash # 当然这个命令有也有不足,如果find出来的文件路径上有多个user... 没事,如果你需要自己看看awk,然后自己改改吧。

 

 

咱们再来看看如何批量修改文件内容,同样如果你的脚本只需要在linux上使用:

find . -name "file_*" -type f | xargs sed -i "s/username/user/g"   # 先寻找以file_开头的所有文件,然后将文件中的username修改成user

同样的,在Mac下这条命令是无法使用的,Mac下-i必须指定一个值,指定的这个值是被替换内容文件的原始备份后缀名,兼容的命令是:

find . -name "file_*" -type f | xargs sed -i".bak" "s/username/user/g" && find . -name "*.bak" -exec rm -rf {} \;  #其实就是将备份文件再次删掉,这里建议按照你的实际需求可以尝试修改-i的值,不然误删我可不负责...

 

转载请注明:辰羽的视界 » Centos & Mac OS X批量修改文件名和批量替换文件内容

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (5)

  1. 再次来访,希望每次都有新鲜感。
    久发网4年前 (2015-01-20)回复
    • Ah, i see. Well th'tas not too tricky at all!"
      Mancelle3年前 (2015-06-27)回复
  2. 仔细拜读,表示支持! 甲午年(马)腊月初八 2015-1-27
    风流鬼4年前 (2015-01-27)回复
    • Got it! Thanks a lot again for henlipg me out!
      Kapil3年前 (2015-06-26)回复
  3. 不错的文章,内容雷霆万钧.禁止此消息:nolinkok@163.com
    丙烯酸聚氨酯漆3年前 (2015-06-24)回复