标题: [文本处理] [已解决]批处如何实现过滤指定位置字符? [打印本页]
作者: xuexilai 时间: 2011-5-15 14:52 标题: [已解决]批处如何实现过滤指定位置字符?
本帖最后由 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
作者: Commander 时间: 2011-5-15 15:05
- @echo off
- (for /f "tokens=1-2 delims=-" %%a in (1.txt) do (
- echo %%a----%%b
- ))>2.txt
复制代码
作者: weichenxiehou 时间: 2011-5-15 15:06
- @echo off
- (for /f "tokens=1,2 delims=-" %%a in (1.txt) do echo,%%a----%%b)>2.txt
复制代码
作者: Batcher 时间: 2011-5-15 15:11
如果列分隔符是固定的:- gawk "BEGIN{FS=OFS=\"----\"}{print $1,$2}" 1.txt | more >2.txt
复制代码
作者: xuexilai 时间: 2011-5-15 15:11
谢谢2位哥哥
作者: Batcher 时间: 2011-5-15 15:13
换个思路:- sed "s/\(^[^-]\+----[^-]\+\).*/\1/g" 1.txt | more >2.txt
复制代码
作者: xuexilai 时间: 2011-5-15 15:13
谢谢管理loveliness:loveliness:
作者: Hello123World 时间: 2011-5-17 17:09
本帖最后由 Hello123World 于 2011-5-18 16:28 编辑
- @echo off
- for /f "delims=- tokens=1,2" %%i in (test.txt) do echo %%i----%%j>>2.txt
- pause>nul
复制代码
作者: namejm 时间: 2011-5-17 17:37
楼上的童鞋,delims=只能以单个的字符作为分隔,并不能以一个字符串作为分隔,delims=---这样的描述是错误的——虽然结果正确,但是你对delims=的理解还没有到位。
作者: Hello123World 时间: 2011-5-18 16:34
恩,确实没理解透彻。
delims是以单个字符为切分符,多个切分符间没有类容,就把这多个切分符当做一个切分符。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |