sed是Linux下一款功能强大的文本处理工具,可以替换、删除、追加文件内容,支持正则表达式使用。
-
文本替换
- 将当前sed目录下1.txt文件里的ccc替换成xxx
# sed -i 's/ccc/xxx/' ./sed/1.txt
- 将当前sed目录下所有文件里的bbb替换成xxx
# sed -i "s/bbb/xxx/g" `grep bbb -rl ./sed/`
- 将当前sed目录下所有文件里的aaa替换成111
# sed -i 's/aaa/111/g' `find ./sed/ -type f`
-
文本删除
- 删除当前sed目录下1.txt文件里的空白行
# sed -i '/^$/d' ./sed/1.txt
- 删除当前sed目录下所有文件里的空白行
# sed -i '/^$/d' `find ./sed/ -type f`
- 删除当前sed目录下2.txt文件里以111开头的行
# sed -i '/^111/'d ./sed/2.txt
- 删除当前sed目录下1.txt文件里的第2行
# sed -i '2d' ./sed/1.txt
- 删除当前sed目录下2.txt文件里的第1行以后的行
# sed -i '2,$d' ./sed/2.txt
-
文本追加
- 将8888追加到当前sed目录下所有文件里xxx后面
# sed -i 's/xxx/& 8888/g' `find ./sed/ -type f`
- 将yyy追加到当前sed目录下所有文件里xxx后面,注:
没有空格
# sed -i 's/xxx/&yyy/g' `find ./sed/ -type f`
- 将12345追加到当前sed目录下1.txt文件里以111开头的上面
# sed -i '/^111/i\12345' ./sed/1.txt
- 将67890追加到当前sed目录下1.txt文件里以111开头的下面
# sed -i '/^111/a\67890' ./sed/1.txt
- 将
this is a 1.txt line
追加到当前sed目录下1.txt文件里的第3行
# sed -i '3i\this is a 1.txt line' ./sed/1.txt
结:本人也是在工作中不断的学习、实践。当时为了解决问题,掌握了sed
命令,其实在期间也考虑了使用ngx_http_substitutions_filter_module或replace-filter-nginx-module模块,最后选择了sed
解决问题,就是为了快捷方便简单。
---- END ----