标题: [文本处理] 如何删除文本里指定行的上下文内容(首尾多行内容)/提取两个指定行之间的多行内容 [打印本页]
作者: 最爱214 时间: 2017-4-9 15:58 标题: 如何删除文本里指定行的上下文内容(首尾多行内容)/提取两个指定行之间的多行内容
本帖最后由 pcl_test 于 2017-4-9 20:03 编辑
我有若干个以tem1、tem2、tem3顺序命名的txt文件,每个文件的格式均为
00000000 VERSION=WINDOWS x64 14:39:34 APR 09, 2017 CP= 1.250
project--Static Structural (C4)
***** POST1 NODAL BODY LOAD TEMPERATURE LISTING *****
LOAD STEP= 1 SUBSTEP= 1
TIME= 1.0000 LOAD CASE= 0
NODE TEMP
1 228.18
2 228.18
3 228.20
4 228.22
5 228.25
6 228.30
7 228.34
8 228.40
9 228.47
10 228.56
MINIMUM VALUES
NODE 893
VALUE 227.97
MAXIMUM VALUES
NODE 66
VALUE 261.64
其中我只需要中间10行的数据,所以我想要批量删除前6行和后6行数据,请问如何实现呢?
作者: 最爱214 时间: 2017-4-9 18:07
我现在找到办法删除前n行的数据了- @ECHO OFF
- ::设置要操作的文件夹路径如"d:\"及删除的前N行如6
- SET TxtDir=%cd%
- SET /A N=6
- ECHO 开始操作,请稍后...
- CD /D %TxtDir%
- FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
- ECHO 操作结束
- PAUSE
复制代码
不知道可不可以修改一下,再删除后n行的数据
作者: codegay 时间: 2017-4-9 19:02
正则表达式
^\s+\d+\s+\d+\.\d+
作者: 最爱214 时间: 2017-4-9 19:26
谢谢各位了,我自己用比较省事儿的方法的把问题解决了,通过依次删除关键词所在行、删除空行、删除前几行把要的数据提取出来了,代码如下。- @echo off
- ::删除文本中含关键字的行
- for %%1 in (*.txt)do (findstr /iv "NODE VALUE" "%%1">#
- move "#" "%%1">nul 2>nul)
- ::处理文本空行
- for %%a in (*.txt) do (
- for /f "tokens=*" %%b in ('type "%%a"') do echo %%b>>"1%%a"
- del "%%a"
- ren "1%%a" "%%a")
- ::删除的前N行如10
- SET TxtDir=%cd%
- SET /A N=10
- ECHO 开始操作,请稍后...
- CD /D %TxtDir%
- FOR /F "tokens=1 delims=" %%I IN ('DIR /A /B *.txt') DO ((MORE +%N% "%%I">"%%I_")&(DEL /A /F /Q "%%I")&(REN "%%I_" "%%I"))
- ECHO 操作结束
- PAUSE
复制代码
作者: pcl_test 时间: 2017-4-9 20:37
假设格式固定
1、- findstr /rc:"^[ ]*[0-9][0-9]*[ ][ ]*[0-9][0-9\.]*[ ]*$" "文本.txt"
复制代码
2、- @echo off
- call :read "文本.txt"
- pause&exit
- :read
- setlocal enabledelayedexpansion
- for /f "skip=6 tokens=1* delims=:" %%a in ('findstr /n .* "%~1"') do (
- set /a n+=1
- echo;%%b
- if !n! equ 10 goto :eof
- )
复制代码
作者: pcl_test 时间: 2017-4-9 21:14
- powershell "gc '文本.txt'|?{$_ -match '^\s*?\d+\s+\d+(\.\d+)?\s*$'}"
复制代码
- powershell "(gc '文本.txt')[6..15]"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |