一、输出行
注:test是一个文件
sed -n '1,3p' test 把第1到3行的内容输出
sed -n '$p' test 输出最后一行 $p表示最后一行
sed -n '3,$p' test 输出第三行到最后一行
sed -n '1!p' test 输出除第一行外的所有行、
二、使用多个命令
sed -n -e '1p' -e '2,3p' test (使用-e可选项把所有执行操作拼接起来)
三、根据模式串确定行
sed -n '/abc/p' test 输出有abc的行
四、把选取的行写入文件中
sed -n '/abc/w test1' test
五、替换
sed 10,20s/|/:/ test
sed s/|/:/ test
sed 10,20s/|/:/g test
sed s/|/:/g test
上面四句都是把每行里面的字符|换成字符:,但是前两个命令只换每行里面第一次出现的字符,也就是说只能换一个,后面两个命令会把所有符合的字符都换掉,10,20s表示第10行到第20行,而s表示1,$s,也就是第一行到最后一行。
另外还有一个要注意的地方是上面使用了/作为分隔符号,事实上sed并没有强制要求使用/,你也可以使用^,#等符号代替/,比如说当命令中出现/这个符号的时候我们就可以使用其他符号来代替/作为分隔符,这样命令里面的/就不需要转义,如命令sed s/\//:/g test 这里是要把/替换成:,但需要用转义字符,若改成这样sed s#/#:#g test就不需要转义了