sed的用法
sed是一种流编辑器,它是一种文本处理中非常重要的工具,能够配合正则表达式使用。处理时,把当前的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成之后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,知道文件末尾,文件内容你没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;减缓对文件的反复操作;编写转换程序等。
sed用法实例
替换操作:s命令:将文件中每一行的第一个字串qiang替换为yuan,但没有将替换的内容写到文件中去。缓冲区的文本已经替换。
-i : 代表将当前替换的字串写入到文本中
g : 表示文件中每一行的所有匹配字串替换
当需要从第N处匹配开始替换是,可以使用/Ng: ( N:代表从第几个匹配字串开始替换)
d:删除空白行
删除文件的第2行:
删除文件的第3行到末尾的所有行:
删除文件的最后一行:
删除文件中所有开头是test的行:
所有以test开头的行都会被替换为它自己加1234:
子串匹配标记 \1 :
命令中digit 7,被替换成了7.样式匹配到的子串是7,\(..\)用于匹配子串,对于匹配到的第1个子串就标记为\1,以此内推
批量的递归的替换字串,如下例:
将所有文件中含“yuan”的字串改为"qiang"
格式为:sed -i "s/OldString/NewString/g" `grep "string" . -n -rl`
删除文件中的空格
sed -i 's/\ //g' filename
删除文件中的换行符
cat filename|tr -d ['\n'] > .tmp cp .tmp filename rm .tmp