linux shell sed使用
来源:互联网 发布:怎样学软件编程课程 编辑:程序博客网 时间:2024/06/10 21:36
- sed option script file
-e script:在处理输入时,将script中指定的命令添加到运行命令中
-f file:在处理输入时,将file中指定的命令添加到运行命令中
-n:不要为每个命令输出,等待print命令输出 - s命令:s命令会用斜线间指定的第二个文本字符串来替换第一个文本字符串
sed编辑器自身不会修改文本文件的数据,他只是将修改后的数据发送到STDOUT。如果查看原来的数据,它任然保留着原始数据
$ echo "this is a test" | sed 's/test/big test/'this is a big test
- sed命令-e选项:命令行上执行多个命令时,命令之间必须用分号分割,并且命令末尾和分号之间不能有空格
$ echo "the quick brown for jumps over the dog" | sed -e 's/brown/green/; s/dog/cat'echo "the quick green for jumps over the cat#或者使用次提示符来分割命令$ sed -e 's/brown/green/s/dog/cat/s/for/elephant/' data1
- sed的4中可用的替换标记
数字:表示新文本将要被替换第几处模式匹配的地方
g:表示新文本将要替换所有已有文本出现的地方
p:表明原来的行要打印出来
w file:将替换结果写到文件中
$sed 's/test/trial/2' data$sed 's/test/trial/g' data$sed -n 's/test/trial/p' data#-n与p的结合使用就是不将原行内容打印出来,只输出修改的行#有些文本中含有像正斜线‘/’分隔符,需要使用反斜线‘\’来进行转义$sed 's/\/bin\/bash/\/bin\/ksh/' etc/passwd#也可以使用其他的分隔符来进行字符串分割$sed 's!/bin/bash!/bin/ksh!' etc/passwd
- 如果只想将命令作用与特定的行或某些行,需要使用行寻址
[address]command
#只替换第二行$sed '2s/dog/cat/' data#只替换第二行和第三行$sed '2,3s/dog/cat/' data#替换某行到行尾$sed '2,$s/dog/cat/' data
- 使用文本模式过滤器
/pattern/command
#将含有this字符串行的dog替换为cat$sed '/this/s/dog/cat/' data
- sed 删除行
#单行删除,将第3行删除$sed '3d' data#范围删除,删除2到3行$sed '2,3d' data#删除第二行到尾部$sed '2, $d' data#以上是通过删除指定行,也可以通匹配内容来删除,遇到1,数据流打开,直到遇到3,将数据流关闭,期间内容都会删除$sed '/1/,/3/d' data
插入和附加文本
1.插入(insert):命令i会在指定行前增加一个新行
$echo "abcd" | sed 'i\ efgh' #输出efghabcd
2.追加(append):命令a会在指定行后增加一个新行
$echo "hello world" | sed 'a\ hello man'#输出hello worldhello man
同理,也可以在指定位置进行插入和追加,就像在指定位置进行删除操作
$sed '3a\hello world' data#第3行追加$sed '2i\hello man' data#第二行前插入$sed '$a\hello gril' data#尾部追加
- sed之修改
chang:同追加和插入,必须要指定新行
$sed '3c\hello world' data#将第三行修改为$sed '/hello/c\world' data#将匹配到hello的行修改为world$sed '2,3c\hello world' data #进行范围修改行
- sed之转换
transform:y命令是唯一可以处理单个字符的编辑命令,inchar 和outchar首先是长度要一样,不然会报错,二是将inchar第一个字符转为outchar第一个字符,依次类推。转换是全局命令,会找到文件中出现的指定字符进行转换。
$sed 'y/123/456' data#将1转为4,2-5,3-6
- sed之打印
p:小写p用于打印文本行
sed -n '/number/p' data#将匹配到number字符串行进行打印,n代表不打印未匹配到的行
=:用于打印行号
sed '=' data#将文件中遇到换行符的行进行行数和行内容进行打印1hello world2hello man
l:用于列出行
cat datathis is a dog#间隔是\tsed -n 'l' datathis\t\is\t\a\dog
阅读全文
0 0
- linux shell sed使用
- linux shell之sed
- linux shell--sed详解
- Linux Shell Sed command
- Linux shell sed心得
- linux shell之sed
- linux shell之sed
- Linux Shell - sed
- linux shell之sed
- linux shell之sed
- linux shell之sed
- linux shell cut sed
- Linux Shell之sed
- Linux Shell 之sed
- linux shell之sed
- linux shell之sed
- Linux shell sed awk
- linux shell之sed
- HDU1072 Nightmare
- 深入剖析Tomcat-一个简单的servlet容器
- 46题
- APUE习题3.2----自己实现的dup2( )函数的源码
- Git命令使用笔记
- linux shell sed使用
- 存储结构类型
- mysql csv文件导入问题
- Just a Hook HDU
- 计算机英语·A
- 杭电-PID1013-Digital Roots
- lnmp搭建(二)MySQL安装及配置
- 基本的8088汇编语言五个实验题
- solr6.5.1中文分词