mYoungs' Blog

I love, therefore I am.

0%

OS X 上使用sed命令

最近需要处理一个多行文件在本地,由于文件较大无法直接编辑,需要在首行插入一行数据。这样的需求首先想到的是sed命令:

1
sed -i '1i\new line01' sedtest

无情地报错

sed: 1: “sedtest”: unterminated substitute in regular expression

man 了一下看到有个备份参数 于是

1
sed -i '' '1i\new line01' sedtest

无情地报错 again

sed: 1: “1i\new line01”: extra characters after \ at the end of i command

真的让人绝望。。。

Google大法,看到zhouxiaohong’s Blog -> sed in mac大意是说需要换行一下。
于是:

1
2
sed -i '' '1i\
new line01' sedtest

然鹅,输出的文件是:

1
2
3
4
new line01line1
line2
line3
...

再修改一下下

1
2
3
sed -i '' '1i\
new line01\
' sedtest

终于…

1
2
3
4
5
new line01
line1
line2
line3
...