本文共 1086 字,大约阅读时间需要 3 分钟。
#sed
sed是一种流编辑器,
它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
#命令格式
1 | sed [options] 'command' file (s) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [root@node3 ~] # cat file a b ccc ddd123aaa 123aaa321 ### #asda $ada $ [root@node3 ~] # sed '1p' file a a b ccc ddd123aaa 123aaa321 ### #asda $ada $ [root@node3 ~] # sed -n '1p' file a |
#分组
1 2 | [root@node3 ~] # echo -e "I love you.\n" | sed -n 's/\(love\)/\1s/p' I loves you. |
#引用外部变量
1 2 3 4 5 6 | [root@node3 ~] # test=hello [root@node3 ~] # echo "hello WORLD" | sed "s/$test/HELLO/g" HELLO WORLD [root@node3 ~] # echo "hello WORLD" | sed 's/'$test'/HELLO/g' HELLO WORLD [root@node3 ~] # |
#选定行的范围
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@node3 ~] # sed -n '/^a/,/^1/p' file a b ccc ddd123aaa 123aaa321 [root@node3 ~] # sed -n '3,/^#/p' file ccc ddd123aaa 123aaa321 ### |
(未完成,有空更)