找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25164|回复: 9

[文本处理] [已解决]批处如何实现过滤指定位置字符?

[复制链接]
发表于 2011-5-15 14:52:01 | 显示全部楼层 |阅读模式
本帖最后由 xuexilai 于 2011-5-15 15:12 编辑

请教各位哥哥姐姐们这个批处代码应该怎么写 小弟在此谢过了


1.txt内容如下:
1622928524----uuuuuuuuuuu---fghthyt----ty46hhhhh
1625767993----55555555555----yhjjyjytj----hhhhhhhhhhh  
1635570584----4ggggggggg----vvvvvvvvvvv----re545555555
1693323163----ssssddddddd----eeeeeeeeeeeee----ju777777779

运行批处过滤后的结果 保存为2.txt

2.txt内容如下:

1622928524----uuuuuuuuuuu
1625767993----55555555555
1635570584----4ggggggggg
1693323163----ssssddddddd

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-5-15 15:05:38 | 显示全部楼层
  1. @echo off
  2. (for /f "tokens=1-2 delims=-" %%a in (1.txt) do (
  3.     echo %%a----%%b
  4. ))>2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2011-5-15 15:06:19 | 显示全部楼层

  1. @echo off
  2. (for /f "tokens=1,2 delims=-" %%a in (1.txt) do echo,%%a----%%b)>2.txt
复制代码
发表于 2011-5-15 15:11:17 | 显示全部楼层
如果列分隔符是固定的:
  1. gawk "BEGIN{FS=OFS="----"}{print $1,$2}" 1.txt | more >2.txt
复制代码
 楼主| 发表于 2011-5-15 15:11:43 | 显示全部楼层
谢谢2位哥哥
发表于 2011-5-15 15:13:11 | 显示全部楼层
换个思路:
  1. sed "s/\(^[^-]\+----[^-]\+\).*/\1/g" 1.txt | more >2.txt
复制代码
 楼主| 发表于 2011-5-15 15:13:53 | 显示全部楼层
谢谢管理loveliness:loveliness:
发表于 2011-5-17 17:09:57 | 显示全部楼层
本帖最后由 Hello123World 于 2011-5-18 16:28 编辑
  1. @echo off
  2. for /f "delims=- tokens=1,2" %%i in (test.txt) do echo %%i----%%j>>2.txt
  3. pause>nul
复制代码
发表于 2011-5-17 17:37:13 | 显示全部楼层
楼上的童鞋,delims=只能以单个的字符作为分隔,并不能以一个字符串作为分隔,delims=---这样的描述是错误的——虽然结果正确,但是你对delims=的理解还没有到位。
发表于 2011-5-18 16:34:03 | 显示全部楼层
恩,确实没理解透彻。
delims是以单个字符为切分符,多个切分符间没有类容,就把这多个切分符当做一个切分符。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:26 , Processed in 0.027004 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表