我想更換一些文字與包含一個變量和引號字符串,即像一串一串的sed從一個數組。殼的bash對與包括「
我不知道該怎麼辦,因爲通常我只是使用「」圍繞替換字符串值,以便它擴大x值,但很明顯,不會工作,因爲我的字符串包含「」 她是我的命令到目前爲止:
cat $FILE | sed 's|/#replace|test "'"$x"'" "1" "0" "" '|g' > $NEW_FILE
但這不起作用。任何幫助將不勝感激。
我想更換一些文字與包含一個變量和引號字符串,即像一串一串的sed從一個數組。殼的bash對與包括「
我不知道該怎麼辦,因爲通常我只是使用「」圍繞替換字符串值,以便它擴大x值,但很明顯,不會工作,因爲我的字符串包含「」 她是我的命令到目前爲止:
cat $FILE | sed 's|/#replace|test "'"$x"'" "1" "0" "" '|g' > $NEW_FILE
但這不起作用。任何幫助將不勝感激。
這個版本似乎做你想要什麼:
$ x=ABC ; echo '/#replace' | sed 's|/#replace|test "'"$x"'" "1" "0" "" |g'
test "ABC" "1" "0" ""
sed命令由三個串。爲了清楚起見,我讓他們之間此處添加空格:
's|/#replace|test "' "$x" '" "1" "0" "" |g' # Don't try to use this form. It is for explication only.
sed命令的第一和第三部分是單引號,以防止外殼解釋。中間的字符串是唯一用雙引號引起的,並且這樣就解釋了$x
。
試試這個sed的:
sed "s|/#replace|test \"$x\" \"1\" \"0\" \"\"|g" "$FILE" > "$NEW_FILE"
這樣,你就應該這樣做:
FILEPATH="/path/to/SourceFile"
sed 's|search|replace|' $FILEPATH > /path/to/EditedFile-new
我算奇數單引號的,所以我之前猜單引號| g是多餘的 – Ronald