关于linux指令sed的使用

sed -i 主要作用就是操作文本 如下:

去掉 “行首” 带“@”的首字母@

1
sed -i 's/^@//' file

特定字符串的行前插入新行

1
sed -i '/特定字符串/i 新行字符串' file

特定字符串的行后插入新行

1
sed -i '/特定字符串/a 新行字符串' file

特定字符串的删除

1
sed -i '/字符串/d' file

提示: 以上斜杠可以换成~ 一样实现相同功能

问题场景:

在mac上,使用sed命令把当前目录的test.sql文件内容中的a替换为b,使用命令:sed -i “s/a/b/g” test.sql

遇到报错:sed: 1: “grep …”: extra characters at the end of g command

解决:

在mac中使用sed命令在-i参数后面需要带一对双引号””,正确格式如下:

1
sed -i "" "s/a/b/g" test.sql

原因

sed -i 后面的双引号中可写任意字符串或者为空,含义是用于生成源文件的备份文件的文件名。比如上面的例子:sed -i “_tmp” “s/a/b/g” test.sql,在替换test.sql的同时,还会生成test.sql_tmp的备份文件

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%