【笔记】Sed学习笔记
前言
Sed学习笔记
对文件操作
- Sed可以对文件的某一行进行增删改查操作
- Sed只是对内存的操作,所以不会直接更改原文件
<command>
:对文件的处理
a
:下一行追加i
:上一行追加p
:打印d
:删除位置s
:查找并替换c
:行修改y
:字符串修改
<option>
:可选选项
-e script
:将指定多个<command>
同时执行-f script
:将包含指定多个<command>
的文件内命令同时执行-n
:抑制自动输出,不进行反馈-i
:编辑文件内容-i.bak
:修改时同时创建.bak
备份-r
:使用扩展的正则表达式!
:取反
<flag>
:参数
数字
:表示新文本替换的模式g
:表示用新文本替换现有文本的全部实例p
:表示打印原始内容w <filename>
:将替换的结果写入文件
<num>
:需要操作的行号(可选),一行直接写行号,多行写范围(用,
连接起止行号)<str>
:一个字符串<file>
:需要操作的文件路径
1 | sed <option> '<num><command><str><flag>' <file> |
添加
在所有行下一行追加
1 | sed 'a<str>' <file> |
在所有行上一行追加
1 | sed 'i<str>' <file> |
在指定行下一行追加
<num>
:指定行
<num_start>
:指定开始行<num_end>
:指定截止行
1 | sed '<num>a<str>' <file> |
在指定行上一行追加
1 | sed '<num>i<str>' <file> |
在匹配位置下一行追加
<s>
:要查找的子字符串
1 | sed '/<s>/a<str>' <file> |
在匹配位置上一行追加
1 | sed '/<s>/i<stt>' <file> |
删除
删除所有行
1 | sed 'd' <file> |
删除指定行
1 | sed '<num>d' <file> |
删除匹配的行
1 | sed '/<s>/d' <file> |
修改
修改指定行
- 修改指定一些行,改为指定内容的一行
<s_beford>
:修改前的字符串所在行<s_later>
:修改后的字符串
1 | sed 's/<s_before>/<s_later>/' <file> |
修改匹配到的行
1 | sed '/<s>/c<str>' <file> |
修改字符串
<str_before>
:修改之前的一组字符<str_later>
:修改之后的一组字符,对应修改之前的字符
1 | sed 'y/<str_before>/<str_later>/' <file> |
打印
打印指定行
1 | sed '<num>p' <file> |
打印匹配行
1 | sed '/<s>/p' <file> |
输出到文件
<file_out>
:定义输出的文件
1 | sed 'pw <file_out>' <file> |