1. sed删除空行
举例:
## cat test.txt
a
b
c
d
解决方法1:
## sed '/^[ ]*$/d' test.txt
a
b
c
d
解决方法2:
## sed '/^\s*$/d' test.txt
a
b
c
d
2. sed删除前几行
假设删除前10行:
## 删除第1行到第10行
sed '1,10d' filename
## 删除第2行到第3行
sed '2,3d' filename
## 只是删除某一行(删除第2行)
sed '2d' filename
3. sed替换
sed将全文制表符号(tab,\t)替换为(换行符号,\n):
sed 's/\t/\n/g' filename
4. sed在某一行插入
举例如下:
## cat test.txt
a
b
c
d
在第二行前面
(in front;i)插入test1 test2:
## sed '2itest\ttest2' test.txt
a
test test2
b
c
d
在第二行后面
(after;a)插入test1 test2:
## sed '2atest\ttest2' test.txt
a
b
test test2
c
d
当不知道在哪一行时候,可以匹配行的内容,在匹配行的前一行:
## sed '/a/i\bbbbb' test.txt
bbbbb
a
b
c
d
在匹配行的后一行:
## sed '/a/a\bbbbb' test.txt
a
bbbbb
b
c
d
如果想要源文件修改,使用参数-i
,更多用法后续补充。
5. sed求某一列数据的最大最小值(结合awk)
需求:一文件内容如下,求第一列
的最大值和最小值
1 1220
2 1221
3 1222
3 1223
4 1224
5 1225
12 1226
12 1227
12 1228
12 1229
12 1230
命令如下
求最小值:
sed ‘/^$/d’ test.txt|awk ‘NR==1{min=$1;next}{min=min<$1?min:$1}END{print min}’
求最大值:
sed ‘/^$/d’ test.txt|awk ‘NR==1{max=$1;next}{max=max>$1?max:$1}END{print max}’
利用sed删除空行,利用awk筛选出最大值和最小值
参考:
https://blog.csdn.net/diy534/article/details/8570626
https://www.csdn.net/tags/MtTaMg3sODk3NzQxLWJsb2cO0O0O.html
https://blog.csdn.net/weixin_42191996/article/details/90676076