
我運行瞭如下命令來調試我的腳本,但它不起作用。
$ L="Thanh,Fri 11 Nov, Mon 14 Nov,LX,VN"
$ B="Fri 11 Nov, Mon 14 Nov"
$ N="11.11-14.11"
$ sed 's/'$B'/'$N'/' <<< $L
sed: -e expression #1, char 5: unterminated `s' command
請你幫助我好嗎?
答案1
這是因為 - 擴充功能中存在未加引號的空格,$B
您可以set -x
在 shell 中使用來驗證:
$ set -x
$ sed 's/'$B'/'$N'/' <<< $L
+ sed s/Fri 11 Nov, Mon 14 Nov/11.11-14.11/
sed: -e expression #1, char 5: unterminated `s' command
$ set +x
(注意 sed 如何接收單獨的參數s/Fri
11
Nov,
等)。
您可以使用
sed 's/'"$B"'/'"$N"'/' <<< "$L"
或者更簡單地說
sed "s/$B/$N/" <<< "$L"
前任。
$ set -x
$ sed "s/$B/$N/" <<< "$L"
+ sed 's/Fri 11 Nov, Mon 14 Nov/11.11-14.11/'
Thanh,11.11-14.11,LX,VN
$ set +x