001 删除1-10行
002 删除换行
1
2
3
|
sed ':label;N;s/\n//;b label'
sed ':a;N;$!ba;s/\n//g' /root/.ssh/authorized_keys
|
003 分组并格式化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
sed 's/\(.\{5\}\)\(.*\)/\1|\2/g' abcd20190513001.txt | awk -F"|" '{printf("%5s,%8s,%5d,%2s,%8.2f,%6s\n",$1,$2,$3,$4,$5,$6)}'| sed 's/\,/|/g'
echo 'tags: [ "2018" ]' | sed -r 's/([0-9]+\")/\1,\"ALL\"/g'
##############
cat test1
first:second
one:two
sed 's/\(.*\):\(.*\)/\2:\1/' test
second:first
two:one
##############
|
004 将前两行搬到文件末尾
sed -e '1,2{H;D};$G' hehe.sh
1
2
3
4
5
6
|
sed -n '1,4p' file
sed -n '1~2p' file
sed -n '2~2p' file
sed '/pipei/s/zaipipei/tihuan/' file
sed '2 a newline' file # 第二行后插入新行
sed '/image: docker/a\ restart: always' docker-compose.yml |grep image # image: docker 后新增一行
|
命令n: 打印模式空间
命令x: 保持空间替换模式空间
命令h: 将模式空间的内容复制到保持空间
命令H: 将模式空间的内容追加到保持空间
命令g: 将保持空间的内容复制到模式空间
命令G: 将保持空间的内容追加到模式空间
命令N: 读取下一行数据并追加到模式空间
命令P: 打印多行模式中的第一行
命令D: 删除多行模式中的第一行
:label: 定义一个标签
命令b label: 执行该标签后面的命令。sed会跳转到该标签,然后执行后面的命令
命令t: 进入循环