linux查找替换
‘壹’ 鍦╨inux涓嬬殑VIM涓镟挎崲锻戒护镄勬牸寮忔槸浠涔堬纻钖勯儴鍒嗙殑钖涔夋槸浠涔堬纻
鍦╨inux涓嬬殑VIM涓镟挎崲锻戒护镄勬牸寮忔槸;[range]s/pattern/string/[c,e,g,i]
range:鎸囩殑鏄锣冨洿
s(search):琛ㄧず鎼灭储
pattern锛氩氨鏄瑕佽镟挎崲镄瀛楃︿覆
string锛氩皢镟挎崲pattern
C锛氭疮娆℃浛鎹㈠墠璇㈤梾
g锛坓lobe锛:涓嶈㈤梾锛屽皢锅氭暣琛屾浛鎹
e(error):涓嶆樉绀篹rror
i:(ignore)涓嶅垎澶у皬鍐
‘贰’ 总结linux替换字符串的几种方法
一)通过vi编辑器来替换。
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
1.perl命令替换,参数含义如下:
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-e 执行指定的脚本。
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l 对输入内容自动chomp,对输出内容自动添加换行
-n 自动循环,相当于 while(<>) { 脚本; }
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
将所有C程序中的foo替换成bar,旧文件备份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”
perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
将每个文件中出现的数值都加一
2.sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/shan/hua/g" lishan.txt
把当前目录下lishan.txt里的shan都替换为hua 各个Linux详细命令介绍及应用可如下进行查找
‘叁’ 在red hat enter linux中用怎么替换字符串
sed。在linux中可以利用sed命令来查找和替换文件中的字符串,该命令采用的是流编辑模式,可以根据正则表达式匹配和处理文本文件中的数据,替换语法为“sed”s/要搜索的字符串或正则表达式/替换值/g'要执行操作的文件名”。
‘肆’ linux涓镓归噺镆ユ垒镟挎崲鏂囨湰鍐呭逛緥瀛
.镓归噺镆ユ垒镆愪釜鐩涓嬫枃浠剁殑鍖呭惈镄勫唴瀹癸纴渚嫔傦细
# grep -rn "瑕佹垒镆ユ垒镄勬枃链" ./
2.镓归噺镆ユ垒骞舵浛鎹㈡枃浠跺唴瀹广
# sed -i "s/瑕佹垒镆ユ垒镄勬枃链/镟挎崲钖庣殑鏂囨湰/g" `grep -rl "瑕佹垒镆ユ垒镄勬枃链" ./`
sed镄勫叾浠栫敤娉曞备笅锛
1銆佸垹闄よ岄栫┖镙
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
2銆佽屽悗鍜岃屽墠娣诲姞鏂拌
琛屽悗锛歴ed 's/pattern//n/g' filename
琛屽墠锛歴ed 's/pattern//n/g' filename
浠h〃pattern
3銆佷娇鐢ㄥ彉閲忔浛鎹(浣跨敤鍙屽紩鍙)
sed -e "s/$var1/$var2/g" filename
4銆佸湪绗涓琛屽墠鎻掑叆鏂囨湰
sed -i '1 i/鎻掑叆瀛楃︿覆' filename
5銆佸湪链钖庝竴琛屾彃鍏
sed -i '$ a/鎻掑叆瀛楃︿覆' filename
6銆佸湪鍖归厤琛屽墠鎻掑叆
sed -i '/pattern/ i "鎻掑叆瀛楃︿覆"' filename
7銆佸湪鍖归厤琛屽悗鎻掑叆
sed -i '/pattern/ a "鎻掑叆瀛楃︿覆"' filename
8銆佸垹闄ゆ枃链涓绌鸿屽拰绌烘牸缁勬垚镄勮屼互鍙#鍙锋敞閲婄殑琛
grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
find锻戒护
find -name '瑕佹煡镓剧殑鏂囦欢钖' | xargs perl -pi -e 's|琚镟挎崲镄勫瓧绗︿覆|镟挎崲钖庣殑瀛楃︿覆|g'
#镆ユ垒镟挎崲褰揿墠鐩褰曚笅鍖呭惈瀛楃︿覆骞惰繘琛屾浛鎹
find -name '*.txt' | xargs perl -pi -e 's|鏅烘収涔℃潙|鍖楅儴灞卞尯|g'
#阃掑綊镆ユ垒镟挎崲
find . -type f -name '*.html' | xargs perl -pi -e 's|鏅烘収涔℃潙|鍖楅儴灞卞尯|g'
#鎼灭储鐩褰昄OG鍖呭惈鏄剧ず鍑烘潵
find ./ -name '*log*' -type d
find ./ -name '*Log*' -type d more
褰撶劧杩桦彲浠ュ埄鐢 linux vim 镓归噺镟挎崲
鍙瀵瑰綋鍓嶈岃繘琛屾浛鎹锛
Example
:s/XXX/YYY/g
,濡傛灉闇瑕佽繘琛屽叏閮ㄦ浛鎹锛
Example
:%s/XXX/YYY/g
濡傛灉闇瑕佸规寚瀹氶儴鍒呜繘琛屾浛鎹,鍙浠ョ敤V杩涘叆visual妯″纺,鍐嶈繘琛
Example
:s/XXX/YYY/g
鎴栬呭彲浠ユ寚瀹氲屾暟瀵规寚瀹氲寖锲磋繘琛屾浛鎹:
Example
:10,31s/XXX/YYY/g
鑻ラ渶瑕佹樉绀鸿屽彿锛屽湪vim涓
Example
:set nu
鍙栨秷鏄剧ず琛屽彿锛
Example
:set nonu
:s/well/good/ 镟挎崲褰揿墠琛岀涓涓 well 涓 good
:s/well/good/g 镟挎崲褰揿墠琛屾墍链 well 涓 good
:n,$s/well/good/ 镟挎崲绗 n 琛屽紑濮嫔埌链钖庝竴琛屼腑姣忎竴琛岀殑绗涓涓 well 涓 good
:n,$s/well/good/g 镟挎崲绗 n 琛屽紑濮嫔埌链钖庝竴琛屼腑姣忎竴琛屾墍链 well 涓 good
n 涓烘暟瀛楋纴鑻 n 涓 .锛岃〃绀轰粠褰揿墠琛屽紑濮嫔埌链钖庝竴琛
:%s/well/good/(绛夊悓浜 :g/well/s//good/) 镟挎崲姣忎竴琛岀殑绗涓涓 well 涓 good
:%s/well/good/g(绛夊悓浜 :g/well/s//good/g) 镟挎崲姣忎竴琛屼腑镓链 well 涓 good
鍙浠ヤ娇鐢 # 浣滀负鍒嗛殧绗︼纴姝ゆ椂涓闂村嚭鐜扮殑 / 涓崭细浣滀负鍒嗛殧绗
:s#well/#good/# 镟挎崲褰揿墠琛岀涓涓 well/ 涓 good/
:%s#/usr/bin#/bin#g 鍙浠ユ妸鏂囦欢涓镓链夎矾寰/usr/bin鎹㈡垚/bin