[問題] sed為特殊字元加上跳脫字元問題
情境:
將文字檔裡的wireless ssid取出並sed到另外一個文字檔。
問題:
遇上包含/的ssid,sed指令會出事。
stackoverflow找到的解法:
放變數的時候用 ${ssid//\//\\/}在/前面加上escape。
問題1:
match pattern是 /\/,看不懂第一個/的用途,實驗過用\/
當pattern輸出結果也是一樣,這是為什麼呢?
實驗方式
ssid="TEST/SSID"
echo ${ssid//\//\\/}
echo ${ssid/\//\\/}
輸出都是TEST\/SSID
問題2:
取代的字串是\\/,就我的認知應該兩個都要加escape所以應該是\\\/
實驗結果也是兩個輸出都一樣,why???
echo ${ssid//\//\\/}
echo ${ssid//\//\\\/}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.108.239 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1646711447.A.E67.html
→
03/08 12:33,
2年前
, 1F
03/08 12:33, 1F
→
03/08 12:34,
2年前
, 2F
03/08 12:34, 2F
→
03/08 12:35,
2年前
, 3F
03/08 12:35, 3F
→
03/08 12:35,
2年前
, 4F
03/08 12:35, 4F
推
03/08 13:09,
2年前
, 5F
03/08 13:09, 5F
→
03/08 13:10,
2年前
, 6F
03/08 13:10, 6F
→
03/08 13:29,
2年前
, 7F
03/08 13:29, 7F
推
03/08 18:18,
2年前
, 8F
03/08 18:18, 8F
推
03/08 18:21,
2年前
, 9F
03/08 18:21, 9F
推
03/16 16:38, , 10F
03/16 16:38, 10F
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章