mac os上使用sed的一个坑
2018-02-22 本文已影响76人
link_hui
问题
sed可以替换文件中的某个部分。
通常查到的命令如下:
sed -i 's/main/fun/g' 'Test.txt'
但是在mac os上执行却遇到下面的错误。
sed: 1: "Test.txt": invalid command code T
原因
执行man sed查看帮助,发现 -i 操作后面要跟一个extension参数,明确备份的文件
-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 situa-
tions where disk space is exhausted, etc.
如果不需要备份文件,则设置一个长度为0的参数
解决
sed -i '' 's/main/fun/g' 'Test.txt'