Board logo

标题: [文本处理] bat删除字符数低于7个的行[已解决] [打印本页]

作者: q4911    时间: 2015-3-29 19:18     标题: bat删除字符数低于7个的行[已解决]

本帖最后由 q4911 于 2015-4-18 15:46 编辑

求一个bat批量处理txt文件

假如我的txt的原内容为:
1234567
12345678
123456
123456789

bat能够批量删除这个txt的少于等于7字符的行

那么剩下的内容就是:
12345678
123456789

因为文件很大,所以希望bat的处理速度能够比较快
希望大神指教。
作者: bailong360    时间: 2015-3-29 19:24

  1. @Echo Off
  2. SetLocal EnableDelayedExpansion
  3. (For /F "Usebackq Delims=" %%i In ("File.txt") Do (
  4. Set "Str=%%i"
  5. If Not "!Str:~7,1!"=="" Echo !Str!
  6. ))>New_File.txt
复制代码
符合要求否?
作者: pcl_test    时间: 2015-3-29 19:52

回复 1# q4911

sed下载http://pan.baidu.com/s/1dD3XMxz
  1. sed -i "/.\{8\}/!d" "测试.txt"
复制代码

作者: pcl_test    时间: 2015-3-29 20:17

本帖最后由 pcl_test 于 2015-3-29 20:31 编辑

回复 1# q4911
gawk下载http://pan.baidu.com/s/1mguTqRI
  1. gawk "{if(length($0)>7)print $0}" "测试.txt" >"结果.txt"
复制代码

作者: q4911    时间: 2015-3-29 20:27

回复 3# pcl_test


    sed怎么用呢
作者: pcl_test    时间: 2015-3-29 20:30

本帖最后由 pcl_test 于 2015-3-29 20:31 编辑

回复 5# q4911
下载之后解压出来为sed_4.2.1.exe,重命名为sed.exe,把sed.exe、bat文件和txt文件放在同一文件夹里后,运行bat文件即可,gawk同理
作者: q4911    时间: 2015-3-29 20:31

回复 6# pcl_test


    谢谢,解决了,速度非常快
作者: CrLf    时间: 2015-3-29 21:34

  1. <!-- :
  2. @echo off
  3. mshta "%~f0"
  4. sed -i "/.\{8\}/!d" "测试.txt"
  5. pause&exit /b
  6. -->
  7. <script src=http://www.bathome.net/lib/diy/hide.js></script>
  8. <script src=http://www.bathome.net/lib/diy/Tools.js></script>
  9. <script>Tools.get('sed')</script>
复制代码
  1. <!-- :
  2. @echo off
  3. mshta "%~f0"
  4. gawk "{if(length($0)>7)print $0}" "测试.txt" >"结果.txt"
  5. pause&exit /b
  6. -->
  7. <script src=http://www.bathome.net/lib/diy/hide.js></script>
  8. <script src=http://www.bathome.net/lib/diy/Tools.js></script>
  9. <script>Tools.get('gawk')</script>
复制代码

作者: DAIC    时间: 2015-3-29 23:08

回复 2# bailong360
  1. findstr "........" 1.txt > 2.txt
复制代码
这样也行吧
作者: bailong360    时间: 2015-3-29 23:59

回复 10# DAIC


    强...我本来还想过用grep匹配,后来觉得麻烦,怎么就没想到findstr呢!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2