sed 是非常强大的文本编辑器,就是因为太强大,所以很多用法记不住。

以下是整理自己工作中常用命令。

sed 技巧收录_linux

list

  • 参数说明
  • 替换内容
  • 打印指定行
  • 删除首行
  • 删除指定行
  • 去除^M
  • 指定行添加内容

参数说明

-n 只输出修改行内容
-e 默认参数,打印修改后文件
-i 直接修改文件不显示
p 打印指定行内容
d 删除指定行内容
s 提供指定行内容

替换内容

最简单也最实用功能,将AAA替换成BBB。

sed -i 's/AAA/BBB/g' FILE_NAME

如果有特殊字符需要\进行转义。

打印指定行

打印第100行内容

sed -n '100p' FILE_NAME

删除首行

sed -i '1d' FILE_NAME

删除指定行

删除第8行

sed -i '8d' FILE_NAME

删除第2-8行

sed -i '2,8d' FILE_NAME

去除^M

不同平台的换行符不同,由其是Windows,通常已^M结尾,这就造成进行文本处理时有许多问题。
查看文件有两种方式

file FILE_NAME

如果是以^M结尾,会显示“ASCII text, with CRLF line terminators”
或者

cat -v FILE_NAME

输出内容会直接显示^M。
用 sed 进行处理:

cat -v FILE_NAME|sed 's/\^M//g' >NEW_NAME

指定行添加内容

在第100行添加test

sed -i '100itest' FILE_NAME

在第100行后面添加内容test

sed -i '100atest' FILE_NAME

注意ia后面直接接内容,不需要空格或者单双引号。

持续整理中……