2016-11-29 14 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 

をし、これを取得する:sedを

hello 
Line 1 
Line 2 
Line 3 
+0

このように考えたことはありませんが、それは魅力のように機能します。 –

0

ことは何か、あなたがのために、個々のライン上の単純な置換のためのものです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を使用しています。

関連する問題