[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]用SED快速提取指定分隔符间的字段

本帖最后由 userwww 于 2015-3-28 23:14 编辑

有一文本50M,几十万行,如何能快速提取出分隔符|第一及第二段的内容,可用sed等工具,谢谢
"c:\AILog.txt"|0|130691370615909692|130687957107313120|32
"c:\autoexec.bat"|24|128891437401258876|128920106441575908|32
...

结果
"c:\AILog.txt"|0
"c:\autoexec.bat"|24
...

问题已解决,谢谢各位,不知道只能评一次分,后面的各位不好意思了,再次感谢
1

评分人数

本帖最后由 userwww 于 2015-3-28 22:40 编辑

非常感谢楼上的各位!
这是我的P,用时是65秒
  1. cd.>2.txt
  2. for /f "tokens=1,2 delims=|" %%i in (1.txt) do (
  3. echo %%i^|%%j>>2.txt
  4. )
复制代码
二楼的P,用时是5秒多
@echo off
  1. (for /f "tokens=1,2* delims=|" %%a in (test.txt) do echo,%%a^|%%b)>a.txt
  2. pause
复制代码
四楼管理员的awk是2秒多
  1. gawk -F "|" "{print $1 FS $2}" 1.txt > 2.txt
复制代码
五楼的SED是3秒多
  1. sed "s/^\([^|]\+|[^|]\+\).*/\1/" 1.txt > 2.txt
复制代码
因本机上没有GREP,就没测到它的速度,为什么我的P会慢那么多呢?

TOP

返回列表