``導致sed命令解析失敗,試驗如下
試圖把單個反斜線替換為兩個反斜線,也就是把
\替換為\\
$ cat t1.sh
#!/bin/sh
a=`echo 1|sed 's/\\/\\\\/g'`
echo $a
$ ./t1.sh
sed:-e 表示式 #1,字元 8:unterminated `s' command
$ sh -x ./t3.sh
++ echo 1
++ sed 's/\/\\/g'
sed:-e 表示式 #1,字元 8:unterminated `s' command
+ a=
+ echo
應該是反斜線提前被shell解析,傳給sed的時候已經變成s/\/\\/g
把``替換為$()的方式就可以了
$ cat t1.sh
#!/bin/sh
a=$(echo 1|sed 's/\\/\\\\/g')
echo $a
$ ./t1.sh
1執行成功
shell指令碼中sed的使用
sed語法格式 語法格式 sed 選項 編輯指令 檔名 選項 n 遮蔽預設輸出 i 直接修改檔案內容 r 啟用擴充套件正則 條件 1.行號 指令 p 輸出 print 例子 列印第一到四行 sed n 1,4p passwd 列印第三行,第五行 sed n 3p 5p passwd 列印第三行之後的...
shell指令碼學習sed
i 替換並儲存 s pattern replace string 只替換第一處 s pattern replace string g 替換所有 s pattern replace string ng 從第n處開始匹配 ex 直接替換文字 clz localhost shell learn sed i...
Shell指令碼補充 sed
var 10 a haha echo var 10 echo 10 echo ab 為空 echo b 輸出hahab a abcdcba echo 輸出abcdcba 完全匹配失敗 echo 輸出dcba abc被刪除了 即到第乙個被匹配的c echo a 輸出abcdcba 不會對源資料做修改a...