sed中定位文本的方式
x 一行号
x,y 行号范围
/pattern/ 查询包含模式的行
/pattern/pattern/ 查询包含两个模式的行
/pattern/,x 在指定行号上查询匹配模式的行
x,/pattern/ 通过行号和模式查询匹配行
x,y! 查询不包含行号x,y的行
gred -n "..." 1.dat
匹配符号"..."格式的行,-n 显示行号
sed 's/oldString/newString/g' 1.dat
s表示替换,g表示全局替换
sed -i 's/oldString/newString/g' 1.dat
-i表示在原文件中替换
1, 删除文本:d
替换命令用替换模式替换指定模式
使用sed实现的一个重要功能是在另一个系统中下载的文件中剔除控制字符。
1. 使用s/-*//g删除横线-----
2. 使用/^$s/d删除空行
3. 使用$d删除最后一行
4. 使用1d删除第一行
sed '$d' 1.dat
使用$d删除最后一行
2,替换命令: s
sed 实用工具以及其它任何类似的编辑器的最常用的命令之一是用一个值替换另一个值。用来实现这一目的的操作的命令部分语法是:
's/{old value}/{new value}/'
3, 添加和插入文本:a,i
可以结合使用 sed 和 "a" 选项将文本添加到一个文件的末尾,
sed '$ a\ ...' 1.dat
当用插入来代替添加时,只需用 "i" 来代替 "a"
例如,以下命令将"two"后面的"1" 替换为 "2",以及将"three"后面的"1" 替换为 "3",并删除文件中所有尾随的空行
$ sed '/two/ s/1/2/; /three/ s/1/3/; /^$/ d' 1.dat
------------------------------------------
替换第n行,1表示第一行,$表示最后一行
sed '1 d' 1.dat
sed '1 i\...' 1.dat
注:这两个操作都是从新开始一个行,a是在匹配的行前添加,i是在匹配的行后添加。如果需要直接在每行前或者后添加字符串,可以使用如下命令:
sed 's/^/gnuplot /g' 1.dat
sed 's/$/gnuplot /g' 1.dat