2017-09-25 92 views
0

我想我在一個文件中第一行後,該塊添加到:無法添加行與sed?

sed -i '1a\ 
apply plugin: 'io.fabric' \ 
repositories { \ 
    maven { \ 
    url 'https://maven.fabric.io/public' \ 
    } \ 
}' test.txt; 

但在運行interminal我得到錯誤:

的sed:-e表達式#1,燒焦108:意外`}」

+0

除了使用單引號內的單引號的問題,其他問題可能會突然出現以及..我建議把要添加到文件中,並使用線'sed的「1R lines.txt」的test.txt '這將是強大的解決方案適用於所有情況... – Sundeep

+2

刪除最後一個反斜槓後面的空間應該可以解決這個問題。 – CWLiu

回答

1

兩件事情,

  • 你包括單現狀單引號tes,它會有不良結果。使用雙引號或正確引用字符串中的單引號。

  • 沒有應遵循\在線條的末端。

我們可以寫一些像

sed "1a \\ 
apply plugin: 'io.fabric' \\ 
repositories { \\ 
    maven { \\ 
    url 'https://maven.fabric.io/public' \\ 
    } \\ 
}" input 

注意這裏\\,因爲我們使用了雙引號是必需的。

+0

它正在與-i一起工作。 –

+0

@ User101我省略'-i'只是爲了防止輸入文件的意外編輯。 – nu11p01n73R

+0

'S /包括單引號內的單引號,就會有意想不到的結果/你不能在單引號內的單引號/'和'S /或適當報價單引號/或使用右單引號跳回了劇本,然後在shell中提供單引號,然後用單引號/'重新輸入腳本。 '「富」 \「」 bar'',我以爲是你腦子裏想的是什麼,是不是逃避報價在腳本它的退出腳本,在shell提供逃脫單引號,然後重新進入腳本。 –