2016-11-29 54 views
2

在文件的第一行插入一些文本後,我無法斷開一行。sed - 在OSX文件的第一行插入文本後的斷行

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'; 

任何人有同樣的經歷?在此先感謝:)

回答

1

只需在單引號內添加一個換行符。因此,從file.txt這樣的:

Line 1 
Line 2 
Line 3 

你可以這樣做:

sed '1 i\ 
hello 
' file.txt 

,並得到這樣的:

hello 
Line 1 
Line 2 
Line 3 
+0

從來沒有這樣想過,它像一個魅力,感謝人:D –

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」編輯。

相關問題