簡體   English   中英

bash shell腳本中的sed錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM