作者wanzoo (Zoo)
看板Programming
標題[問題] Windows CMD 分割字串
時間Thu Dec 24 13:59:42 2015
文字檔裡,每行的內容如下:
1A345_ABC_67890_XYZ_112233
32132_ABC_0983091_GJK_334455
xxxxxxxx_ABC_yyy_RSF_556677
我想要取出 67890_XYZ 以及 0983091_GJK,以此類推。
請問有沒有最快的方法?
我試著先用 delims 分割字串,但發現 delims 後面只能指定「字元組合」,
而不是「完整字串」,
比如用下列指令來分割第一行:
for /F "delims=_ABC_" %0 in (test.txt) do @echo %0
照理說要用"_ABC_"來分割成 1A345 及 67890_XYZ_112233。
但是,程式並不會以"_ABC_"來分割,而是以"_ABC_"裡能在第一行最先找到的字元來分割,
也就是會用"_ABC_"裡的"A"來把字串割成 1 跟 345_ABC_67890_XYZ_112233。
有解法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.166.181
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1450936785.A.B8E.html
※ wanzoo:轉錄至看板 Windows 12/24 14:00
推 LPH66: 換個想法, 你要的東西是以 _ 切開之後的 123.195.39.85 12/24 22:06
→ LPH66: 第 3,4 個東西, 那就是 123.195.39.85 12/24 22:06
→ LPH66: for /f "delims=_ tokens=2,3" %0 in ... 123.195.39.85 12/24 22:06
→ LPH66: 啊, 樓上打錯了, 是 123.195.39.85 12/24 22:07
→ LPH66: for /f "delims=_ tokens=3,4" %0 in ... 123.195.39.85 12/24 22:07
→ LPH66: 然後取 %0 跟 %1 自己接起來用 123.195.39.85 12/24 22:07
推 OSDBNetwork: for /F "tokens=1,2,3,4 delims=_" 111.255.146.55 12/30 03:05
→ OSDBNetwork: %1 in (test.txt) do @echo %3_%4 111.255.146.55 12/30 03:05