昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了
sed
命令上,今天不总结一下都对不起昨天流逝的时间啊~~~用
sed
命令在行首或行尾
添加
字符的命令有以下几种:假设处理的
文本
为test.file在每行的头
添加
字符,比如"HEAD",命令如下:
sed
's/^/HEAD&/g' test.file在每行的行尾
添加
字符,比如“TAIL”,命令如下:
sed
's/$/&TAIL/...
sed
是stream editor(流编辑器)的缩写。它能够完美匹配正则表达式。
sed
和awk是文件编辑最重要的两个命令了。尤其涉及到了很多正则表达式的问题,笔者不敢也有点犯怵,试着写写。
1.替换文件中的
字符串
$
sed
-i ‘s/text/replace/g’ file
#如果不加g结尾,则替换每
一行
的第一个
#如果只是打印,去掉-i
2.忽略
前
N处匹配,从N+1出开始替换
$
sed
-i ‘s/text/replace/2g’ file
#在g
前
面加入数字N
3.移除空白符
$
sed
‘/^$/d’ file
4.标记已匹配的内容
$echo this is an ex
你以为这种方式是正确的吗 nonono 他会默认把该内容
添加
到文件的每
一行
而不是
最后
一行
,那么正确的方法就是在
前
面加一个$,表示只在文件
最后
一行
添加
内容。
sed
-i '$aAGE=\"12\"' test.txt
sed
在
文本
第一行
和
最后
一行
添加
字符串
shell
在
文本
第一行
和
最后
一行
添加
字符串
sed
-i '1 i DELIMITER INSERTDELIMITER' filename
sed
-i '1 i DELIMITER INSERTDELIMITER' filename
sed
'1i
添加
的内容' file #这是在
第一行
前
添加
字符串
sed
'$i
添加
的内容' file #这是在
最后
一行
行
前
添加
字符串
sed
'$a
添加
的内容' file #这是在
最后
一行
行后
添加
字符串
-n: 一般
sed
命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过
sed
命令处理的行输出到屏幕
-e: 允许对输入数据应用多条
sed
命令编辑
-i: 用
sed
的修改结果直接修改读取数据的文件,而不是由屏幕输出
a\: 追加,在当
前
行后
添加
一行
或多行。
添加
多行时,除
最后
一行
外,每行末尾需要用"\"代表数据未完结
c\: 行替
sed
(stream editor)流编辑器也是linux中的一条命令,在
shell
中经常需要用到的非交互式修改文件内容的命令。
sed
处理
文本
是按行处理,也就是读
一行
处理
一行
。
sed
的常用参数-n 屏蔽默认输出;如果不加-n选项会全部输出
文本
满足条件的行再重复输出-r 如果使用扩展正则,则需要
添加
-r选项,默认不支持扩展正则,只支持标准正则-i 直接修改源文件;不加-i只会在屏幕临时输...
注意:这里没有s/原/新/的方法,也就是没有s这个参数,并且
最后
没有/.2.通过
sed
实现在搜索到某个
字符串
之后,在下
一行
插入
字符串
。如果要在匹配的行
前
面插入
一行
,把a命令改成i命令即可。新插入的行或者匹配行如果有特殊字符,记得转义。1.查看原文件中的内容。