sed - 在OSX文件的第一行插入文本后中断行

时间:2016-11-29 07:15:39

标签: macos sed

在文件的第一行插入一些文字后,我无法断行。

find . -type f -path '*/browser/components/*/*.react.js' -exec sed -i "" '1 i\
import { logRender } from "../../common/lib/logger";/\n/g' {} +

它返回:

import { logRender } from "../../common/lib/logger";/n/gimport Component from 'react-pure-render/component';

而不是:

import { logRender } from "../../common/lib/logger";
import Component from 'react-pure-render/component';

任何人都有相同的经历吗?在此先感谢:)

2 个答案:

答案 0 :(得分:1)

只需在单引号内添加换行符即可。所以,从这样的file.txt开始:

Line 1
Line 2
Line 3

你可以这样做:

sed '1 i\
hello
' file.txt

得到这个:

hello
Line 1
Line 2
Line 3

答案 1 :(得分:0)

sed用于单独行的简单替换,对于你应该使用awk的任何其他内容:

find . -type f -path '*/browser/components/*/*.react.js' -exec awk -i inplace 'FNR==1{print "import { logRender } from \"../../common/lib/logger\""}1' {} +

以上使用GNU awk进行“inplace”编辑。