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

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

本帖最后由 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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. (for /f "tokens=1-2 delims=-" %%a in (1.txt) do (
  3.     echo %%a----%%b
  4. ))>2.txt
复制代码
1

评分人数

TOP

  1. @echo off
  2. (for /f "tokens=1,2 delims=-" %%a in (1.txt) do echo,%%a----%%b)>2.txt
复制代码
看得多说得多,远比不上写得多。

TOP

如果列分隔符是固定的:
  1. gawk "BEGIN{FS=OFS=\"----\"}{print $1,$2}" 1.txt | more >2.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢2位哥哥

TOP

换个思路:
  1. sed "s/\(^[^-]\+----[^-]\+\).*/\1/g" 1.txt | more >2.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢管理loveliness:loveliness:

TOP

本帖最后由 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
复制代码

TOP

楼上的童鞋,delims=只能以单个的字符作为分隔,并不能以一个字符串作为分隔,delims=---这样的描述是错误的——虽然结果正确,但是你对delims=的理解还没有到位。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

恩,确实没理解透彻。
delims是以单个字符为切分符,多个切分符间没有类容,就把这多个切分符当做一个切分符。

TOP

返回列表