简介
#流编辑器
#可以基于输入到命令行的或是存储在命令文本文件中的命令来处理数据流中的数据.
#每次读取一行,用提供的编辑器命令匹配数据,按命令中指定的方式修改流中的数据,然将生成的数据输出到STDOUT.在流编辑器将所有命令与一行数据进行匹配后,它会读取下一行并重复这个过程直到处理完所有数据.
#sed 自身不会修改文本文件的数据.只将修改后的数据发送到STDOUT
sed options script file
#sed 命令选项选项 描述 -e script 在处理输入时,将script中指定的命令添加到运行的命令中 -f file 在处理输入时,将file中指定的命令添加到运行的命令中 -n 不要为每个命令生成输出,等待print命令来输出 #在命令行使用
sed echo "This is a test" | set 's/test/big test/'
#修改文件sed 's/dog/cat/' data.txt
#在命令行使用多个编辑器命令sed -e 's/This/That/; s/test/big test/'
#从文件中读取编辑器命令 sed -f 编辑器命令文件名 数据文件名sed编辑器基础
#更多的替换选项
# 替换标记
s/pattern/replacement/flags
标记 描述 数字 替换第几处 g 全局替换 p 打印内容 w file 将替换的结果写入到文件中 echo "This test is a big test" | sed 's/test/Test/'
echo "This test is a big test" | sed 's/test/Test/2'
echo "This test is a big test" | sed 's/test/Test/g'
echo "This test is a big test" | sed 's/test/Test/p'
echo "This test is a big test" | sed 's/test/Test/pg'
# 替换字符
#使用其他字符来作为sed命令的字符串分隔符
sed 's!/bin/bash!/bin/sh' /etc/passwd
#只修改文本中第二行数据
sed '2s/dog/cat/' data1
#修改文本中第二行和第十行之间的数据
sed '2,10s/dog/cat/' data1
#修改文本中第二行到最后一行的数据
sed '2,$/s/dog/cat/' data1
#使用文本模式过滤器
sed '/wangjingj/s/bash/csh/' /etc/passwd
sed '/pattern/s/pattern/replacement/flags' /etc/passwd
#删除行
#不加n则删除所有,n代表第几行
#$代表文本文件的文件尾
sed 'n1,n2($)d' data1
#插入和附加文本
#$代表文本文件的文件尾
#在文本行前插入 ised 'ni\
# textcontent'
#在文本行后追加 ased 'na\
# textcontent'
#修改行sed 'nc\
# textcontent' data1
# 使用文本模式sed '/wang n/c\
# textcontent'#转换命令
sed 'ny/inchars/outchars/'
#字符级.全局替换.#回顾打印
#打印行
#p 打印文本行
#= 打印行号
#l 列出行#使用sed和文件一起
#向文件写入sed 'n1,n2w filename' data1
#读取sed 'nr filename' data1
..读取filename文件 插入到data1的数据流的第n行中
#$表示文件尾
#文本模式sed '/pattern n/r filename' data1
shell编程高级之sed编辑器
最新推荐文章于 2024-08-13 10:04:03 发布