标题: [文本处理] [已解决]BAT怎样删除50个字符一下的行?谢谢各位老师! [打印本页]
作者: 1270697389 时间: 2014-1-11 14:39 标题: [已解决]BAT怎样删除50个字符一下的行?谢谢各位老师!
文件a.txt里面的内容要删除50个字符一下(含50)的行,50个字符以上的行留下保存我b.txt。
谢谢!
作者: 522235677 时间: 2014-1-11 17:13
最好给出实际要被操作的文本
作者: terse 时间: 2014-1-11 18:35
FINDSTR 试下
作者: PowerShell 时间: 2014-1-11 19:38
本帖最后由 PowerShell 于 2014-1-13 08:56 编辑
很简单啊,powershell代码- Get-Content a.txt | foreach-object { if ($_.length -ge 50) {$_ >> b.txt } }
复制代码
这里是指50个英文字母,含空格
这里的 $_ 代表每一行。
作者: 522235677 时间: 2014-1-11 21:00
- @echo off & setlocal ENABLEDELAYEDEXPANSION
- for /f "delims=" %%i in (a.txt) do (set a=%%i&if not "!a:~50,1!"=="" echo %%i>>b.txt)
- pause
复制代码
作者: apang 时间: 2014-1-12 18:16
- @echo off
- for /l %%a in (1 1 5) do set "re=!re!.........."
- findstr "^!re!" a.txt>b.txt
复制代码
作者: terse 时间: 2014-1-12 18:55
本帖最后由 terse 于 2014-1-12 18:57 编辑
回复 6# apang
觉得关键词是否这样完善些 findstr /i "!re!.*"
其实前面也提示用 FINDSTR 文件大大话 感觉效率会提升点
作者: apang 时间: 2014-1-12 21:31
回复 7# terse
确实是我搞错了- @echo off & setlocal enabledelayedexpansion
- for /l %%a in (1 1 5) do set "re=!re!.........."
- findstr /i %re%.* a.txt>b.txt
复制代码
作者: 1270697389 时间: 2014-1-13 08:36
回复 terse
确实是我搞错了
apang 发表于 2014-1-12 21:31
请问哪里是管字数的地方,便于修改,谢谢
作者: terse 时间: 2014-1-13 09:39
回复 9# 1270697389 - Rem 设置字数
- set n=50
- for /l %%i in (1 1 %n%) do set "re=!re!."
复制代码
作者: 1270697389 时间: 2014-1-13 12:16
回复 1270697389
terse 发表于 2014-1-13 09:39
谢谢您
作者: 1270697389 时间: 2014-1-13 12:26
回复 1270697389
terse 发表于 2014-1-13 09:39
"re=!re!.."
是什么意思呢?
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |