sed笔记

(1)替换匹配行中的部分字符串
实例:将文件data中value替换为key

在这里插入图片描述
(2)替换匹配行中的从某一部分到末尾的那部分
实例:将文件data中的passwd替换为变量a的值
在这里插入图片描述

实例2:使用c操作来实现
在这里插入图片描述
在这里插入图片描述

或者如下方式亦可:
在这里插入图片描述

(3)带有路径等特殊符号的替换,仅限于替换操作
如果有”/”,
(1)可以使用转义;
(2)或者使用其他的特殊符号(非英文字母),比如“@#”等,
经过测试发现,在特殊字符中,不能使用如下字符(执行命令符、感叹号,美元符,单引号,双引号)
! $ “ ‘ ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190330100045645.png) (4)sed操作中有些需要转义的字符 需要转义的符号如下: ! $ * [ “ . /
sed “s/hello!horld/howareyou/g” data_sed_test
sed “s/hello$horld/howareyou/g” data_sed_test
sed “s/hello*horld/howareyou/g” data_sed_test
sed “s/hello[horld/howareyou/g” data_sed_test
sed “s/hello"horld/howareyou/g” data_sed_test
sed “s/hello.horld/howareyou/g” data_sed_test
sed “s/hello/horld/howareyou/g” data_sed_test
sed “s/hello`horld/howareyou/g” data_sed_test
注意:其中需要两个反斜线()才能进行转义
sed -n “s/hello\horld/howareyou/g” data_sed_test
(5)其他
1、在第一行前插入文本
sed -i ‘1 i插入字符串’ filename

2、在最后一行插入
sed -i ‘$ a插入字符串’ filename

3、在匹配行前插入
sed -i ‘/pattern/ i “插入字符串”’ filename

4、在匹配行后插入
sed -i ‘/pattern/ a “插入字符串”’ filename

5、删除文本中空行和空格组成的行以及#号注释的行
grep -v ^# filename | sed /1*KaTeX parse error: Expected group after '^' at position 11: /d | sed /^̲/d

6、删除行首空格
sed ‘s/2//g’
说明:
此种方法是sed命令标准的替换命令操作,以s开头,g表示全部替换。
由于是删除行首空格,所示使用^操作符,方括号总的空格或tab中的任意一种,这是正则表达式的规范。
中括号右边是
,表示一个或多个。
整体意思是:用空字符去替换一个或多个用空格或tab开头的本体字符串

7、删除行末空格
sed ‘s/[ ]*$//g’
和上面稍微有些不同是前面删除了^符,在后面加上了美元符,这表示以xx结尾的字符串为对象。
但是要注意在KSH中,Tab并不是 而是直接打入一个Tab就可以了。

8、删除所有的空格
sed s/[[:space:]]//g


  1. [:space:] ↩︎

  2. ↩︎

原文地址:https://www.cnblogs.com/yldf/p/11900001.html