在我的程序中,我想先獲得用戶輸入,然後在每個/
之前插入一個\
,所以我寫這個,但它不起作用。我可以使用sed來操縱bash中的變量嗎?
echo "input a website"
read website
sed '/\//i\/' $website
在我的程序中,我想先獲得用戶輸入,然後在每個/
之前插入一個\
,所以我寫這個,但它不起作用。我可以使用sed來操縱bash中的變量嗎?
echo "input a website"
read website
sed '/\//i\/' $website
試試這個:
website=$(sed 's|/|\\/|g' <<< $website)
擊居然還支持這種替代natively的:
${parameter/pattern/string}
- 與string
取代pattern
的第一場比賽。
${parameter//pattern/string}
- 將pattern
的所有匹配項替換爲string
。
因此,你可以這樣做:
website=${website//\//\\/}
echo $website | sed 's/\//\\\//g'
,或者更好的可讀性:
echo $website | sed 's|/|\\/|g'
它運作良好。請你介意解釋這是/ \ // \\\ // g' 和這個|/| \\/| g'? –
'searchreplacecommand | source | target | global(all matches)'你可以在其中使用任何字符作爲分隔符('|')。傳統上'/'用於分隔符 –
然而當我使用「」和變量。它不插入任何東西。你能弄清楚原因嗎?謝謝 –
本機版本並沒有爲我帶大的可變內容'命令來長工作:' – Artistan