[轉帖]Linux下批量替換文件內容方法 Linux下批量替換文件內容方法

Linux下批量替換文件內容方法

 
https://www.cnblogs.com/fjping0606/p/4428850.html

剛纔用到的命令 原做者寫的挺好的記錄一下 之後 用. 

 

1:查找
find . -type f -name "*.html"|xargs grep ‘yourstring’

2:查找並替換
find -name '要查找的文件名' | xargs perl -pi -e 's|被替換的字符串|替換後的字符串|g'


perl -pi -e
在Perl 命令中加上-e 選項,後跟一行代碼,那它就會像運行一個普通的Perl 腳本那樣運行該代碼.

從命令行中使用Perl 可以幫助實現一些強大的、實時的轉換。認真研究正則表達式,並正確地使用,將會爲您省去大量的手工編輯工做。



3:批量修改文件夾權限

find . -type -d -name *.html|xargs chmod 755



4:批量修改文件權限

find . -type -f -name *.html|xargs chmod 644



查找和替換是很經常使用的操做。

這裏介紹的小小技巧可使你很輕鬆地完成大量重複、繁瑣的工做。

以例子進行說明

在當前目錄下的.c文件中查找字符串"password"
grep "password" *.c

在當前目錄及其多個子目錄中查找文件test.c
find . -name "test.c" -print

在當前目錄及其多個子目錄中查找.vbs文件並刪除之
find . -name "*.vbs" -exec rm {} \;

在當前目錄及其多個子目錄下的.c文件中查找字符串"password"
find . -name "*.c" -print | xargs grep "password"

在當前目錄下的.c文件中把字符串"password"替換成"pwd"
perl -pi -e 's/password/pwd/g' *.c

在當前目錄下的.c文件中把字符串"password"替換成"pwd"並以.bak擴展名備份
perl -pi.bak -e 's/password/pwd/g' *.c

在當前目錄及子目錄下的.c文件中替換字符串"password"爲"pwd"
find . -name "*.c" -print | xargs perl -pi -e 's/password/pwd/g'

使用sed操做批量替換

  格式: sed -i "s/查找字段/替換字段/g" `grep 查找字段 -rl 路徑`

  linux sed 批量替換多個文件中的字符串

  sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

  例如:替換/home下全部文件中的www.viiving.com爲www.zjant.com

  sed -i "s/www.viiving.com/www.zjant.com/g" `grep www.viiving.com -rl /mysites

   在當前目錄下操做:sed -i "s/www.viiving.com/www.zjant.com/g" *html

相關文章
相關標籤/搜索