2013-06-30 347 views
0

我要插入的行使用SED插入一個雙反斜線

text \\ 

到一個文件通過sed的。要插入一個反斜槓,我會在命令中使用三個反斜槓。但是逃避不會爲兩個反斜槓工作:

sed -i 'text \\\\\\' $file 

提供了以下錯誤:

sed: -e expression #1, char 57: unknown command: ` 
' 
+1

'char 57:unknown command:'?你正在使用的命令的其餘部分在哪裏?爲什麼你認爲文本會對文件有任何影響,在你顯示的內容中沒有sed命令來插入,追加,替換(或刪除)?祝你好運。 – shellter

+0

你的例子表明你想要echo \\\\>文件。 – devnull

回答

2

做這樣的事情:

sed -i 's/OLDTEXT/text \\\\/' $file

你需要4個反斜槓嘗試添加2時3爲1,4等2等:)

1

輸入f ILE是這樣的:

apple 
orange 
grape 

您可以在orange面前這樣插入text \\

sed -i 's/^orange/text \\\\\n&/' input.txt 

這是什麼字面上的確是匹配開始orange線,與text \\ +換行符替換匹配的字符串+匹配的字符串,有效插入text \\就在該行的前面,即:

apple 
text \\ 
orange 
grape 

請注意,需要4個反斜槓才能插入2。我不知道你的意思是3個反斜槓,你必須忽略那裏的某些東西。

+1

'-ie'開關在您的示例'input.txte'中爲輸入文件名創建一個附加字母「e」的備份文件。 '-i'需要一個空間來進行就地修改。至少對於GNU版本。還因爲'-e'不是強制性的,它不會抱怨。 – Birei

+0

需要點,謝謝! – janos

1

這可能爲你工作(GNU SED):

sed -i '/PATTERN/i\text \\\\' file 

這將覆蓋原來的file和包含字PATTERN線(S)前插入text \\