sed命令对文件内的指定字符串进行替换

news/2024/11/24 22:58:37/

目录

一、创建一个txt文件

二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个

三、替换每行所有的xiaomi为iphone,第三个“/”后,加参数g就是替换所有

四、替换每行第二个redmi为potato,第三个“/”后,加参数2就是替换第2个

 五、替换每行第二个mate到最后一个mate,为pico,第三个“/”后,加参数2g就是替换第2至最后

六、替换每行前两个KFC为CPU

七、替换第二行的第一个HBW为MDL

 八、替换第二行到最后一行的HBW为MDL(符号$表示最后一行,如果写数字就代表到第几行)

九、给第一行行首加上chicken(符号^代表行首)

 十、给第一行行尾加上beautiful(符号$代表行尾)

十一、给每行行首加上chicken,同时创建备份文件(备份还没有写入chicken的文件)

 十二、多个替换动作,用分号;隔开可以一起执行

十三、如果需要替换的字符串包含单引号‘,那么就使用双引号来包围参数

 十四、斜杠/本身是作为sed语句中的分隔符,但如果需要替换的字符串里也包含斜杠/,那么可以用井号#来做分隔符(还可以用问号?)


一、创建一个txt文件

vi huawei.txt

二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个

sed -i "s/huawei/apple/" huawei.txt

 

实现效果:

 

三、替换每行所有的xiaomi为iphone,第三个“/”后,加参数g就是替换所有

sed -i  "s/xiaomi/iphone/g" huawei.txt

 

实现效果:

 

四、替换每行第二个redmi为potato,第三个“/”后,加参数2就是替换第2个

sed -i "s/redmi/potato/2"

 

 五、替换每行第二个mate到最后一个mate,为pico,第三个“/”后,加参数2g就是替换第2至最后

sed -i "s/mate/pico/2g" 

 

六、替换每行前两个KFC为CPU

sed -i "s/KFC/CPU/"

sed -i "s/KFC/CPU/"

 

先替换第一个,此时原本的第二个字符串从顺序上来说变成了第一个,就再替换一次

(以上的操作范围为每一行,接下来我们精确筛选需要修改的特定行or第几行,方便演示我们就只改变特定行的第一个字符串。也就是不加“g”)

七、替换第二行的第一个HBW为MDL

sed -i "2s/HBW/MDL/" HBW.txt 

 八、替换第二行到最后一行的HBW为MDL(符号$表示最后一行,如果写数字就代表到第几行)

sed -i '2,$s/HBW/MDL/' HBW.txt 

注意当语句中使用逗号","时,语句外就必须使用单引号

(以上都是针对特定字符串本身的替换,接下来我们修改行首或行尾).

九、给第一行行首加上chicken(符号^代表行首)

sed -i '1s/^/chicken/' ktv.txt

 

 十、给第一行行尾加上beautiful(符号$代表行尾)

sed -i '1s/$/beautiful/' ktv.txt 

 

(使用sed -i命令直接修改文件后,后悔了怎么办?可以加上参数-i.bak,就会修改的同时创建备份)

十一、给每行行首加上chicken,同时创建备份文件(备份还没有写入chicken的文件)

sed -i.bak 's/^/chicken/' aaa.txt 

 

 十二、多个替换动作,用分号;隔开可以一起执行

同时给所有行首加上top,给所有行尾加上bottom(注意没有调用-i参数,修改结果不会写入文件

sed 's/^/top/;s/$/bottom/' aaa.txt

十三、如果需要替换的字符串包含单引号‘,那么就使用双引号来包围参数

 替换每行的n’a为na,(注意为了方便没有使用-i参数,修改结果不会写入文件)

sed "s/n'a/na/" aaa.txt

 十四、斜杠/本身是作为sed语句中的分隔符,但如果需要替换的字符串里也包含斜杠/,那么可以用井号#来做分隔符(还可以用问号?)

替换n/a为na,(没有调用参数-i,修改结果不会写入文件)

sed "s#n/a#na#" aaa.txt

sed "s?n/a?na?" aaa.txt

感悟:sed的方便在之处在于你可以快速定位编辑文档内容中的某个关键词(你已知那个字符串),但是对于未知字符串就很难直接用sed解决。如密码本,我想替换所有密码,但它们都是随机字符串,假如文件内容是“password:12345678;password:22345678;……”,那么我能够定位的只能是“password:”和“;”,如何继续去替换非固定的“12345678”还需要研究


http://www.ppmy.cn/news/276765.html

相关文章

乔春洋:主品牌与副品牌

乔春洋:主品牌与副品牌 许多企业在品牌不变的情况下,为自己的新产品起一个优美动听的小名,我们把这个小名叫作副品牌。副品牌在不少行业被广泛使用,而以家电业为最多。例如海尔电冰箱、洗衣机中的“小王子”、“大王子”、“…

CES 2015大会:智能家居或将竞相亮相

在去年于拉斯维加斯举办的CES 2014大会上,各场馆均广泛地展出了智能家居产品。而在名为Tech West科技的展会上,智能家居产品将拥有其专用展览空间,并将此作为位于金沙酒店一个新会议区的一部分。虽然我们仍会在全城各处会见各种其他智能家居供…

共享AI智慧生活 国美智能打造零售生态核心竞争力

7月10日,36氪举办的“明质本质远质——2018商业新生态峰会”在北京举办,本届商业新生态峰会主题为“质”,吸引了众多零售行业企业代表及产业链大咖。峰会上,新商业领袖们开启智慧碰撞,共同拨开商业本质,为新…

嵌入式成长轨迹0 嵌入式展望与学习路线

【引:智能家居概念】 随着家庭自动化技术的发展,很多以前出现在科幻小说中的场景已经变为现实:只要说“看电视”就可以把电视打开,拉上窗帘,房间的光线逐渐调整到最适宜看电视的程度……或者,在回家的路上&…

CAEE广东家电配件展-家电零部件展——CAEE家电与电子电器供应链博览会

CAEE家电与电子电器供应链博览会(China International Appliance & Electronics Supply Chain Expo)暨中国国际家电零部件、材料、家电配件、家电技术设备展览会将于2022年上半年和下半年,分别在广东、上海(长三角)、合肥、青岛中国四大家电产业重镇联袂召开。 …

第六届智能家居亚洲峰会暨精品展(Smart Home Asia 2022)将于10月在沪召开

智能家居作为物联网、云服务和人工智能技术的产业化应用,涉及计算机视听觉、生物特征识别、新型人机交互、智能决策控制等相关先进技术,受到国家政策的大力支持。基于广阔的市场空间、5G、IoT、AI等技术快速迭代、新基建的政策红利以及新消费形势的需求&…

2022-2028全球与中国智能家居设备市场现状及未来发展趋势

2021年全球智能家居设备市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(2022-2028)。地区层面来看,中国市场在过去几年变化较快,2021年市场规模为 百万美…

国美在线“8.3男人节”来了 3C家电百货五折扫货就在今天

转眼进入8月,电商行业又展开了新的的角逐。据悉,国美在线将斥巨资打造最强8月最强的“8.3男人节”大促活动,男人节先锋战于7月28日正式开启。另外,还有一点值得注意,7月26日,国美在线与大润发飞牛网达成战略…