Board logo

标题: 请教sed按分隔符输出文本 [打印本页]

作者: nanhezzb     时间: 2009-4-20 06:33    标题: 请教sed按分隔符输出文本

2403:2376746:24053:351237:510282:6513297036:2376706246:12180000372:877000562184:12001108125
类似这样文本,SED怎么输出效果为:
2043
2376746
24053
……
87000561284
12001108125
??
请教sed按分隔符输出文本,类似for的delims=:效果!
谢谢了~~
作者: 26933062     时间: 2009-4-20 08:40

@echo off
set str=2403:2376746:24053:351237:510282:6513297036:2376706246:12180000372:877000562184:12001108125
echo %str%|sed "s/:/\n/g"
pause

作者: nanhezzb     时间: 2009-4-20 22:34
输出到文本怎么就没换行了?
作者: sady2009     时间: 2009-4-20 22:50
假设文本是a.txt 输出是b.txt

@echo off
for /f "delims=" %%i in (a.txt) do (
set aa=%%i&set aa=%aa::= %
for %%a in (%aa%) do echo %%a>>b.txt
)
作者: yishanju     时间: 2009-4-20 23:04


  Quote:
Originally posted by nanhezzb at 2009-4-20 22:34:
输出到文本怎么就没换行了?

试试:

@echo off
set str=2403:2376746:24053:351237:510282:6513297036:2376706246:12180000372:877000562184:12001108125
echo %str%|sed "s/:/\r\n/g"
pause

[ Last edited by yishanju on 2009-4-20 at 23:27 ]
作者: freeants001     时间: 2009-4-20 23:16
二楼用的*nix的换行方式,改成windows的就可以了~
@echo off
set str=2403:2376746:24053:351237:510282:6513297036:2376706246:12180000372:877000562184:12001108125
echo %str%|sed "s/:/\r\n/g"
pause

作者: HAT     时间: 2009-4-20 23:17    标题: Re 3楼

可能是你的sed版本太低了
作者: sady2009     时间: 2009-4-20 23:30
我的sed 4.07版,2楼的代码能分行
作者: nanhezzb     时间: 2009-4-21 08:16
我的是4.0.7版本哦。
作者: HAT     时间: 2009-4-21 09:13
换成4.1.4吧
作者: yishanju     时间: 2009-4-21 12:31
来一个FR 版的
echo 2403:2376746:24053:351237:510282:6513297036:2376706246:12180000372:877000562184:12001108125|fr -ric:":" -t:"\r\n"