前言
学习linux命令之sed命令
提示:以下是本篇文章正文内容,下面案例可供参考
一、sed命令简介以及作用
sed是一种流编辑器,它是文本处理中非常好的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern
space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,可以将数据行进行替换、删除、新增、选取等特定工作,简化对文件的反复操作,编写转换程序等
二、sed命令的语法格式
1.命令格式
sed [options] 'command' file(s);
sed的脚本格式:
sed [options] -f scriptfile file(s);
参数选项:
选项
-e :直接在命令行模式上进行sed动作编辑,此为默认选项;
-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作;
-i :直接修改文件内容;
-n :只打印模式匹配的行;
-r :支持扩展表达式;
-h或--help:显示帮助;
-V或--version:显示版本
a\ 在当前行下面插入文本;
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法
2.添加
这是在第一行前添加字符串
sed -i '1i add first content' test.txt
这是在最后一行行前添加字符串
sed -i '$i add content' test.txt
这是在最后一行行后添加字符串
sed -i '$a add content' test.txt
查看文件中的内容
cat test.txt
在54行后面新插入一行内容
sed -i '/54/a\chian' test.txt
3.删除
sed命令来删除文件中带字符“2”的行
sed -i '/2/d' test.txt
删除第一行和第二行内容
sed -i '1,2d' test.txt
删除第一行内容
sed -i '1d' test.txt
删除文件中最后一行内容
sed -i '$d' test.txt
4.查询/打印
显示11-14行的内容
sed -n '11,14p' test.txt
只打印匹配替换的行
sed -n 's/old/new/gp' test.txt
打印匹配到user的行,类似grep
sed -n '/user/p' test.txt
只打印第2行内容
sed -n '2p' test.txt
5. 修改
替换第二行内容
sed -i'2c testContent' test.txt
匹配每一行的第一个old替换为new
sed 's/old/new/' test.txt
匹配所有old替换为new,g 代表一行多个,i 代表匹配忽略大小写
sed 's/old/new/gi' test.txt
匹配第 3~9 行所有old替换为new
sed '3,9s/old/new/gi' test.txt
总结
这里对sed的命令的curd操作进行了简单介绍