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

[文本处理] 批处理如何删除文本中以指定字符分割成两列的第二列内容为纯数字/纯字母的行

[复制链接]
 楼主| 发表于 2017-1-14 00:14:06 | 显示全部楼层
回复 15# flyinnet9


   按照你第一次写代码,该如何修改呢
 楼主| 发表于 2017-1-21 15:11:11 | 显示全部楼层

批处理如何批量删除纯数字所在的行数?

jhfgudeli|wodima123
jhfgudeli|jhfgudeli
jhfgudeli|7204381
jest1314527|1314527
jeffnomms|fanzhe128
jaychen3326|wfd901215


“|”右侧只要是纯数字的,整行删除,“123123fa” 这种不要删除掉哦
发表于 2017-1-21 20:26:17 | 显示全部楼层
本帖最后由 老刘1号 于 2017-1-22 16:55 编辑

  1. Echo off&cls
  2. >输出.txt (
  3. FOR /f "delims=^| tokens=1,*" %%a in (文本.txt) do (
  4.     echo.%%b|(Findstr /i "a b c d e f g h i j k l m n o p q r s t u v w x y z")1>nul 2>&1&&Echo.%%a^|%%b
  5. ))
复制代码
出了点小问题,改下……
这回真改了……

评分

参与人数 2技术 +2 收起 理由
Rasm + 1 厉害,完美解决了
capslock + 1 乐于助人

查看全部评分

发表于 2017-1-22 02:43:52 | 显示全部楼层
本帖最后由 Nsqs 于 2017-1-22 04:45 编辑

方法1
  1. ' 2>nul &cls&(type "1.txt"|cscript -nologo -e:"vbs" "%~0")>new.txt&exit
  2. set ws=wsh.stdin:set regexp=new regexp
  3. with regexp
  4.     do
  5.         .global=-1:.pattern="^.+\|\d*$"
  6.         read=ws.readline
  7.         if not .test(read) then wsh.echo read
  8.     loop until ws.atendofstream
  9. end with
复制代码
方法2
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=1-2 delims=|" %%1 in (1.txt)do (
  3.         set /a n=%%2
  4.         if !n! equ 0 echo %%1^|%%2
  5. ))>new.txt 2>nul
复制代码
发表于 2017-1-22 11:05:59 | 显示全部楼层
  1. findstr /v "\|[0-9][0-9]*$" 1.txt >new.txt
复制代码

评分

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

查看全部评分

发表于 2017-1-22 15:15:10 | 显示全部楼层
回复 4# CrLf


    这个正则写法有问题,有的数字没有剔除
发表于 2017-1-22 16:55:22 | 显示全部楼层
回复 2# 老刘1号


    ……题目看错,我处理了一通左侧的……
发表于 2017-1-22 16:59:30 | 显示全部楼层
回复 4# CrLf


   
发表于 2017-1-22 17:28:17 | 显示全部楼层
哎哟,版主一出手就有美女加分,隔壁老刘就没这待遇啊
发表于 2017-1-22 18:05:08 | 显示全部楼层
回复 7# 老刘1号

最后结尾处的没有排除是因为没有换行或是有空白字符,所以findstr没有匹配到
  1. powershell "gc '文本.txt'|?{$_ -notmatch '\|\d+\s*$'}"&pause
复制代码

评分

参与人数 1技术 +1 收起 理由
老刘1号 + 1

查看全部评分

发表于 2017-1-23 12:00:48 | 显示全部楼层
回复 26# zz100001


    你怎么知道我是女的, 加分是随机的haha, 给老刘1号也补上了

评分

参与人数 1技术 +1 收起 理由
老刘1号 + 1 出来混总是要还的

查看全部评分

 楼主| 发表于 2017-1-23 20:49:22 | 显示全部楼层
回复 20# 老刘1号


    如果一个文本中,只想删选出右侧:123dfsajo,数字开头,但是里面有字母+数字的,该怎么修改
发表于 2017-1-23 21:05:48 | 显示全部楼层
我说嘛我原来是1楼被挤到20楼了……
 楼主| 发表于 2017-1-23 21:14:22 | 显示全部楼层
回复 31# 老刘1号


    对啊,合并了,哈哈,问题雷同
 楼主| 发表于 2017-1-23 21:29:13 | 显示全部楼层
回复 20# 老刘1号


    这个代码是对了,140Kb的文本,处理了2分钟
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 14:12 , Processed in 0.021916 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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