[英]Sed error in bash shell script
我有以下代碼:
sed -i -s "1i${var}" $file
我需要將變量var
所有內容復制到文件的頂部,而不刪除文件的內容。 當var
有一行時,該命令運行良好,但是當var
有多行時,出現此錯誤:
sed: -e expression #1, character 28: extra characters after command
我需要使用sed。
任何想法?
謝謝。
如果$ var有換行符,sed將給出錯誤,如果要插入多行,則需要在每行后附加'\\'
$ echo abc | sed -e '1iinsert 1st line
2nd line'
sed: -e expression #1, char 21: extra characters after command
$ echo abc | sed -e '1iinsert 1st line\
2nd line'
insert 1st line
2nd line
abc
man sed
搜索插入
i \\ text Insert text, which has each embedded newline preceded by a back- slash.
您必須考慮到sed
不會擴展${var}
部分的事實。 巴什做。 Sed接收一個字符串,其中${var}
已被$var
的實際內容替換。 您需要確保這樣的替換將導致有效的sed
命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.