linux批量替換文件
1.批量改名採用命令rename
rename 語法:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v表示顯示詳細信息,-n表示不實際執行替換,只是看哪些文件會受影響。 -f 表示強制,不管是否有重名。
perlexpr是perl語法的表達式, files則是匹配項。因此,該命令執行結果與perlexpr有關,不一定就是改文件名。
實例: 將所有文件名*.html 改為對應的.htm
rename 's//.html$//.htm$/' *.html
去bak後綴
rename 's//.bak$//' *.bak
將文件名大寫改為小寫
rename 'y/A-Z/a-z/' *
但rename不能遞歸修改。
2.遞歸改名,用find+rename
將文件名的abc改為xyz
find . -name "abc*" -exec rename 's/abc/xyz/' {} /;
該命令可以將當前目錄下所有子目錄的文件都改名。
3.內容替換,用find+sed
將所有ablo 替換為ablozhou
find . -type f -exec sed -i -e "s/ablo/ablozhou/g" {} /;
sed 命令 -i 表示 --in-place,文件原地替換。-e 後跟替換表達式
㈡ linux 批量替換某文件夾下的文件名,文件內容,文件夾名稱
1.用for靈活,文件名中字元替換,加日期等都可
先用下面語句測試一下
for
i
in
*aa*
;do
nn=$(echo
$i
|
sed
's/aa/bb/')
;echo
"$nn";done
保險起見,只拷貝
for
i
in
*aa*
;do
nn=$(echo
$i
|
sed
's/aa/bb/')
;cp
"$i"
"$nn";done
這是更名,慎用
for
i
in
*aa*
;do
nn=$(echo
$i
|
sed
's/aa/bb/')
;mv
"$i"
"$nn";done
2.用rename簡潔
先用-n開關測試
rename
-n
's/aa/bb/'
*
測試無誤去掉-n進行更名
rename
's/aa/bb/'
*
㈢ Linux批量替換多個文件中字元串
linux批量替換多個文件中字元串linux下批量替換多個文件中的字元串的簡單方法。用sed命令可以批量替換多個文件中的字元串。
用sed命令可以批量替換多個文件中的字元串。sed
-i
s/原字元串/新字元串/g
`grep
原字元串
-rl
所在目錄`例如:我要把mahuinan替換為huinanma,執行命令:sed
-i
s/mahuinan/huinanma/g
'grep
mahuinan
-rl
/www'這是目前linux最簡單的批量替換字元串命令了!具體格式如下:sed
-i
s/oldString/newString/g
`grep
oldString
-rl
/path`實例代碼:sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
/usr/aa`sed
-i
s/大小多少/日月水火/g
`grep
大小多少
-rl
./`
㈣ linux系統替換文件怎麼替換
sed
批量替換多個文件中的字元串
格式: sed -i "s/查找欄位/替換欄位/g" `grep 查找欄位 -rl 路徑`
例如:替換/home下所有文件中的xxx為ooo
sed -i "s/xxx/ooo/g" `grep xxx -rl /home`
單個文件中的字元串替換
將文件1.txt內的文字「111」替換成「222」
sed -i "s/111/222/g" 2.txt
注意:替換前請備份好文件以免造成不必要的損失,字元串要為絕對內容。