标题: [文本处理] 求助批处理删除以#开头,并且有且只有一个#的行 [打印本页]
作者: mio 时间: 2021-8-10 09:31 标题: 求助批处理删除以#开头,并且有且只有一个#的行
有个文件1.txt,内容是
12
123#
#123
##12
#12#34#
# aaaa
#
####
要删除所有以#开头,并且有且只有一个#的行
处理后变成
12
123#
##12
#12#34#
####
应该用for 实现吗?- (FOR /f "eol=# delims=" %%i in (1.txt) do (echo %%i))>2.txt
- for /f "tokens=2 delims=#" %%i in (1.txt) do (
- if not %%i=="" echo %%i>>2.txt
- )
复制代码
作者: qixiaobin0715 时间: 2021-8-10 09:57
- @echo off
- findstr /bev "#[^#]*" a.txt
- pause
复制代码
作者: cmd1152 时间: 2021-8-10 14:39
(FOR /f "eol=# delims=" %%i in (1.txt) do (echo %%i))>2.txt
作者: qixiaobin0715 时间: 2021-8-10 17:33
回复 3# cmd1152
这样是楼主想要的结果吗?
作者: newswan 时间: 2021-8-10 17:53
- sed -r -e "^#[^#]*" -i 1.txt
复制代码
作者: cmd1152 时间: 2021-8-10 19:34
回复 4# qixiaobin0715
是呀,他不会输出空行
作者: cmd1152 时间: 2021-8-10 19:35
回复 1# mio
%%i要加""
作者: yakeyun 时间: 2021-8-10 20:14
回复 7# cmd1152
需求是统计每行#字符的个数,如果个数是1个,就跳过,如果大于1,就输出结果到B。
作者: yakeyun 时间: 2021-8-14 13:29
回复 1# mio
@echo off
for /f "delims= tokens=*" %%a in ('type "1.txt"^|findstr /b /e /v "#[^#]*"') do echo,%%a >>.\2.txt
exit
作者: lidongyang 时间: 2024-5-6 17:56
回复 2# qixiaobin0715
正解!
作者: hfxiang 时间: 2024-5-7 11:14
回复 1# mio
第3方工具sed( http://bcn.bathome.net/tool/4.9/sed.exe )实现脚本如下:- sed "/^#[^#]*$/d" 1.txt>2.txt
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |