sed 是非常强大的文本编辑器,就是因为太强大,所以很多用法记不住。
以下是整理自己工作中常用命令。
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
注意i
或a
后面直接接内容,不需要空格或者单双引号。
持续整理中……