sed命令使用

sed命令使用
常用选项:
-n 使用安静模式,在一般情况所有的 STDIN 都会输出到屏幕上,加入-n 后只打印被 sed 特殊处理的行
-e 多重编辑,且命令顺序会影响结果
-f 指定一个 sed 脚本文件到命令行执行,
-r Sed 使用扩展正则
-i 直接修改文档读取的内容,不在屏幕上输出
Sed操作命令
sed 操作命令告诉 sed 如何处理由地址指定的各输入行。如果没有指定地址,sed 就会处理输入的所有的行
x:指定行号。
x,y:指定从x到y的行号范围
/ pattern/:查询包含模式的行 # # % %
/ pattern/ pattern/:查询包含两个模式的行
/ pattern/,x:从与 pattern的匹配行到x号行之间的行
x,/ pattern/:从x号行到与 pattern的匹配行之间的行
x,y!:查询不包括x和y行号的行
r:从另一个文件中读文件
w:将文本写入到一个文件
y:变换字符
q:第一个模式匹配完成后退出
l:显示与八进制ASCⅡ码等价的控制字符
{}:在定位行执行的命令组
p:打印匹配行
=:打印文件行号。
a:在定位行号之后追加文本信息
i:在定位行号之前插入文本信息。
d:删除定位行
c:用新文本替换定位文本
s:使用替换模式替换相应模式
n:读取下一个输入行,用下一个命令处理新的行
N:将当前读入行的下一行读取到当前的模式空间。
h:将模式缓冲区的文本复制到保持缓冲区
H:将模式缓冲区的文本追加到保持缓冲区
x:互换模式缓冲区和保持缓冲区的内容
g:将保持缓冲区的内容复制到模式缓冲区
G:将保持缓冲区的内容追加到模式缓冲区。
删除
1.将/etc/passwd 的内容列出并打印行号,同时,将2-5行删除显示
nl /etc/passwd | sed ‘2,5d’
注: sed是sed -e的简写, 后接单引号
2.同上删除第2行 nl /etc/passwd | sed ‘2d’
3.同上删除第三行到最后一行 nl /etc/passwd | sed ‘3,KaTeX parse error: Expected group after '^' at position 20: … 4.删除批注行 sed '/^̲#.*/d' /etc/ini…/d’
插入
4.在第二行后加上一行test nl /etc/passwd | sed ‘2a test’
5. 在第二行前加上一行test nl /etc/passwd | sed ‘2i test’
6. 在第二行后加入三行test nl /etc/passwd|sed ‘2a ttttttt\ndddd\nhhh’
替换
6.将2-5行内容取代为 No 2-5 number nl /etc/passwd | sed ‘2,5c No 2-5 number’
7.把9.txt 文件中 old 替换为new
Sed ‘s/old/new/g’ 9.txt # s///g 内容替换g全局替换
8.在一行的内容前边添加内容
sed ‘/good/ s/^/&word/g’ 9.txt #<== /good/会匹配特定的内 容,然后对匹配到的行进行s/KaTeX parse error: Expected 'EOF', got '&' at position 2: /&̲word/g 替换操作 ,&的…/&word/g’ 9.txt #<== /good/会匹配特定的内 容,然后对匹配到的行进行s/$/&word/g 替换操作 ,&的意思追加

你可能感兴趣的:(sed命令使用)