总结linux替换字符串的几种方法

总结linux替换字符串的几种方法,第1张

一)通过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/\bfoo\b/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详细命令介绍及应用可如下进行查找

可以这样做:

方法1:sed -i 's/被替换的内容/要替换成的内容/' file

方法2:sed 's/被替换的内容/要替换成的内容/g' file >file.out;mv file.out file。

扩展资料:

Shell编程的常用技巧:

一、自动补齐:在linux中对于命令或路径,可以TAB键进行自动补全,以下事项需要注意:

1、只存在一个该输入字符开头的命令或路径,此时自动补全;

2、存在多个该输入字符开头的命令或路径,此时第一次点击TAB键无效,此时再次点击TAB会罗列出所有该字符开头的命令或路径,继续输入直到仅仅剩一个时自动补全;

3、如果命令已经是完整的,TAB键则是本来的移动功能;而路径的话要看命令自身的行为决定后续动作。

二、历史命令

1、history命令可以显示历史执行过的命令;

2、使用!+序号执行该序号对应的命令;

3、使用!+字符执行该字符开头的最后一次执行的指令。

三、命令别名

1、实现别名:alias ddd="df -Th";

2、删除别名:unalias ddd;

3、显示所有别名命令列表:alias;

4、存放位置:~/.bashrc  (加入该文件后,重启后不会消失)。

四、重定向

1、重定向标准输入:<命令接收输入的途径由键盘改为文件;

2、重定向标准输出:>将命令的执行结果输出到指定文件,而不是直接显示到屏幕;

3、重定向标准输出:>>将命令的执行结果追加输出到指定文件;

4、重定向标准错误:2>清除指定文件的内容,并把标准错误信息保存到指定文件;

5、重定向标准错误:2>>标准错误信息追加到指定文件;

6、重定向标准输出和标准错误:&>  将标准输出、标准错误信息全部保存到指定文件,而不是直接显示在屏幕上。

sed。

在linux中可以利用sed命令来查找和替换文件中的字符串,该命令采用的是流编辑模式,可以根据正则表达式匹配和处理文本文件中的数据,替换语法为“sed”s/要搜索的字符串或正则表达式/替换值/g'要执行 *** 作的文件名”。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7538039.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存