ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux中sed基础

2019-12-15 12:56:37  阅读:239  来源: 互联网

标签:555 基础 444 sed 111 Linux test txt


sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed命令常用参数

常用命令

函数命令 说明
1,n 需要操作的行,第一行至第N行
s search 查找替换,这个命令使用最多
a append 添加
i insert 插入
c 替换
d 删除行
p 打印

还有两个最重要的参数
-n 使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-i 直接替换原文件,不加-i都不会修改原文件,只是输出或者放置内存中。

sed常用命令的使用

cat test.txt
111
222
333
444
555
666
777
打印第三行至第五行
sed -n '3,5p' test.txt
333
444
555
删除第三至第五行
sed  '3,5d' test.txt
111
222
666
777
删除第三至第五行并修改原文件
sed -i '3,5d' test.txt
cat test.txt
111
222
666
777
第二行之前添加qqq
sed '2i qqq' test.txt
111
qqq
222
333
444
555
666
777
第二行之后添加qqq
sed '2a qqq' test.txt
111
222
qqq
333
444
555
666
777
第二行替换为qqq
sed '2c qqq' test.txt
111
qqq
333
444
555
666
777

sed最重要的s命令,查找替换

sed "s/查找/替换/g" g表示一行全部替换,默认一行只替换第一个

cat test.txt
111
222
111
444
555
sed "s/1/php/" test.txt
php11
222
php11
444
555
sed "s/1/php/g" test.txt
phpphpphp
222
phpphpphp
444
555

跟正则相似。^表示每一行开始,$表示每一行结束。正则匹配是遵循规范的。

每一行开始加//
sed "s/^/\/\//g" test.txt
//111
//222
//111
//444
//555
每一行行尾加;
sed "s/$/;/g" test.txt
111;
222;
111;
444;
555;

替换满足条件某一个字符

替换每一行的第二匹配字符1,替换成+
sed "s/1/+/2" test.txt
1+1
222
1+1
444
555

多个匹配替换用;隔开

把2替换成+,把4替换成-
sed "s/2/+/g;s/4/-/g" test.txt
111
+++
111
---
555

圆括号子集,在替换结果里面使用\1 \2 \n

cat test.txt
1hello1
222
111
444
555
sed "s/1\(.*\)1/wo\1/g" test.txt
wohello
222
wo1
444
555

常用的项目文件替换

把当前项目中所有文件中的111替换成helloworld
sed -i "s/111/helloworld/g" `grep -rl . *`

标签:555,基础,444,sed,111,Linux,test,txt
来源: https://www.cnblogs.com/feixiangmanon/p/12043757.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有