简介
- Linux三剑客之一,以行为单位的文本编辑工具 sed可以直接修改档案。
- 使用方法:
sed [-nef] '[动作]' [输入文本]
sed相关命令集选项参数
- -n : 安静模式
- -e : 多重编辑
- a 新增, a 后面可以接字符串, 而这个字符串会在新的一行出现. (下一行)
- c 取代, c 后面的字符串, 这些字符串可以取代 n1,n2之间的行
- d 删除, 后面不接任何东西
- i 插入, 后面的字符串, 会在上一行出现
- p 打印, 将选择的资料列出, 通常和 sed -n 一起运作 sed -n ‘3p’ 只打印第3行
- s 取代, 类似vi中的取代
- q 退出, 匹配到某行退出, 提高效率
- r 匹配到的行读取某文件
- w file, 匹配到的行写入某文件
举例说明
- 说明:其中分隔符#,可以使用/,%,@等替代
- 替换
//将"your" 替换为 "my"
sed 's#your#my#g' poetry.txt
//结果 真实替换
- 删除操作
//删除第一行
sed '1d' poetry
//会显示除了第一行之外的所有行, 因为第一行已经被删除了(实际文件并没有被删除)
//删除从第二行到最后一行所有的内容
sed '2,$d' poetry
//$符号正则表达式中表示行末尾, 没有说明哪行末尾, 就会指最后一行末尾,
^开头, 如果没有指定哪行开头, 就是第一行开头
//文件中所有带 test 的行, 全部删除
sed '/my/d' poetry
遇到的问题
-
mac下用sed报错
command c expects \ followed by text
使用命令:sed -i 's/xxxx/yyyyyyy/g' nginx.conf
-
原文简述
-i extension
Edit files in-place, saving backups with the specified extension. If a zero-length extension is
given, no backup will be saved. It is not recommended to give a zero-length extension when in-
place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
- 解决
`sed -i ‘’ ‘s/xxxx/yyyyyyy/g’ nginx.conf``