第四周 sed

224 阅读2分钟

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e

参数说明

-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件(不会修改源文件)。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。
-i--修改源文件内容

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

示例

sed.txt

 row 1
 row 2
 row 3
 row 4
 row 5

sed -i '1a\new\ line\ with\ a' sed.txt 第一行后插入一行

sed -e '1i\new\ line\ with\ i' sed.txt > sed_new.txt 在第一行前插入一行并将结果输出到新文件 (sed -e并不会改变源文件)

nl sed.txt | sed -e '1,3d' 删除1到3行 (2,$d 从第二行删除到最后一行)

sed -e '1c new row 1 ' sed.txt 替换第一行

sed -n '1,3p' sed.txt 只打印出第一到三行

sed -n '/new/p' sed.txt 查找打印存在'new'的行

查找并删除存在'new'的行

sed -e 's/new/New/g' sed.txt 替换new为New