标题: [文本处理] 批处理怎样在分段文本中查找两个特定的行内容? [打印本页]
作者: 暮雨潇潇 时间: 2023-6-6 10:21 标题: 批处理怎样在分段文本中查找两个特定的行内容?
Message:
Name : Xiaoming
Number : 0001
Chinese:89
Math:88
English: 90
Sex: Man
Message:
Name : XiaoHua
Number : 0002
Chinese:85
Math:89
English: 89
Sports:
Sex: Man
Message:
Name : XiaoFang
Number : 0003
Chinese: 90
Math: 78
English: 89
Physics:
Sports:
Sex: Woman
有多段类似上面格式的文本的txt文件,每一段文本除了Name:和Sex:两行文本它们之间还有多行无规律文本。
每一段文本间存在一行空行。
要从所有文本找出每一段Name后面的Sex生成一个新的new.txt
例如:
Xiaoming Man
XiaoHua Man
XiaoFang Woman
作者: qixiaobin0715 时间: 2023-6-6 10:50
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=: " %%i in ('type *.txt') do (
- if "%%i"=="Number" (
- set str=%%j
- ) else if "%%i"=="Sex" (
- echo,!str! %%j>>New.txt
- )
- )
复制代码
作者: hfxiang 时间: 2023-6-6 11:26
回复 1# 暮雨潇潇
下载gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )后执行:- gawk -F"[ :]+" "/^Name/{a=$NF;while((getline)>0)if($1~/^Message/){next}else if($1~/^Sex$/)print a,$NF}" old.txt>new.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |