标题: [文本处理] [已解决]批处理如何把文本一行变多行? [打印本页]
作者: wangdao6699 时间: 2015-4-5 17:10 标题: [已解决]批处理如何把文本一行变多行?
如 69|8569|986|......
结果,以分隔符 | 标志
69
8569
986
。。。
作者: DAIC 时间: 2015-4-5 17:15
- sed "s/|/\n/g" 1.txt > 2.txt
复制代码
作者: pcl_test 时间: 2015-4-5 17:22
批处理for语句从入门到精通
http://www.bathome.net/thread-2189-1-1.html
作者: pcl_test 时间: 2015-4-5 17:31
- @echo off
- set str="69|8569|986|456|678|6898"
- set "str=%str:|=,%"
- for %%i in (%str:~1,-1%) do echo %%i
- pause
复制代码
作者: pcl_test 时间: 2015-4-5 17:44
本帖最后由 pcl_test 于 2015-4-5 17:45 编辑
- @echo off
- set str="69|8569|986|456|678|6898"
- for /l %%a in (1 1 6) do call :loop %%a %str%
- pause
- :loop
- for /f tokens^=%1^ delims^=^| %%i in (%2) do echo %%i
- goto :eof
复制代码
作者: cobat 时间: 2015-4-5 18:09
本帖最后由 cobat 于 2015-4-6 00:10 编辑
- @echo off
- set "s=69|8569|986|......"
- echo,%s:|=&echo,%
- pause
复制代码
- @echo off&setlocal enabledelayedexpansion
- set "s=69|8569|986|......"
- echo,!s:^|=^
-
- !&pause
复制代码
作者: wangdao6699 时间: 2015-4-5 18:17
回复 4# pcl_test
代码简洁,感谢
作者: wangdao6699 时间: 2015-4-5 18:22
回复 6# cobat
不能换行
作者: wangdao6699 时间: 2015-4-5 18:23
回复 3# pcl_test
教程不错,学习了
作者: pcl_test 时间: 2015-4-5 18:45
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
作者: pcl_test 时间: 2015-4-5 18:47
本帖最后由 pcl_test 于 2015-4-5 19:25 编辑
- '&cls&@echo off&cscript -nologo -e:vbscript %~fs0 & pause & exit /b
- str="69|8569|986|456|678|6898"
- WScript.echo replace(str,"|",chr(10))
复制代码
作者: pcl_test 时间: 2015-4-5 18:49
powershell- echo '69|8569|986|456|678|6898' | %{Write-Host $_.Replace("|","`n")}
复制代码
作者: bailong360 时间: 2015-4-5 18:55
本帖最后由 bailong360 于 2015-4-5 18:56 编辑
凑热闹
gawk- @gawk -F "|" "for(i=1;i<=NF;i++) print $i>$New.txt" file.txt
复制代码
grep- @grep -oP "\d+" file.txt>$New.txt
复制代码
作者: wangdao6699 时间: 2015-4-5 19:07
回复 12# pcl_test
powershell 更简洁
作者: wangdao6699 时间: 2015-4-5 19:11
回复 13# bailong360
Linux系统 不会啊,只会微软系统
作者: bailong360 时间: 2015-4-5 19:15
回复 15# wangdao6699
这些工具论坛里都有下载地址
http://bbs.bathome.net/viewthread.php?tid=3981
作者: wangdao6699 时间: 2015-4-5 19:16
回复 2# DAIC
SED.exe 功能蛮强大的
作者: pcl_test 时间: 2015-4-5 19:20
本帖最后由 pcl_test 于 2015-4-5 19:21 编辑
- @if (0)==(0) echo off
- cscript -nologo -e:jscript %~s0
- pause & exit
- @end
- var str="69|8569|986|456|678|6898"
- WScript.Echo(str.replace(/\|/g,"\n"))
复制代码
作者: chromatin2 时间: 2015-4-5 20:21
回复 18# pcl_test
这样,不能用bat产生的字串给这个,然后再返回到bat的变量吧?
作者: pcl_test 时间: 2015-4-5 20:26
回复 19# chromatin2
是的,除非外部调用
作者: wangdao6699 时间: 2015-4-6 07:23
回复 16# bailong360
谢谢了
作者: 慕夜蓝化 时间: 2015-4-6 08:16
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (新建文本文档.txt) do (
- set "str=%%i"
- for %%a in ("!str:|=" "!") do echo,%%~a
- )
- pause
复制代码
作者: wangdao6699 时间: 2015-4-6 10:02
回复 22# 慕夜蓝化
运行有效,谢谢了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |