标题: [文本处理] 批处理如何提取文本中指定内容的行及其前几行内容 [打印本页]
作者: ads350668398 时间: 2016-12-9 22:41 标题: 批处理如何提取文本中指定内容的行及其前几行内容
本帖最后由 ads350668398 于 2016-12-12 07:24 编辑
得到文本全特定字符和前几行的字符
A.TXT
13
16
15
3
1
3
16
9
14
12
13
4
10
3
6
13
得到13的前3行:
13 9 10
14 3
12 6
13 13
for /f "tokens=1* delims=" %%a in ('findstr /inx "13" a.txt') do ( 呵呵不会了
作者: ads350668398 时间: 2016-12-10 10:34
该个标题就符合规矩了么??
作者: Nsqs 时间: 2016-12-10 16:49
回复 2# ads350668398
应该是提醒你论坛有类似帖子,自己搜
作者: ads350668398 时间: 2016-12-10 17:20
回复 3# Nsqs
当然有 但是 我实际中不可用
作者: ads350668398 时间: 2016-12-13 00:03
本帖最后由 ads350668398 于 2016-12-13 08:42 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1* delims=:" %%a in ('findstr /inx "13" ss.txt') do (
- set /a m=%%a-1&set _!m!=%%b
- )
- for /f "tokens=1* delims=:" %%a in ('findstr /in .* ss.txt') do (
- if defined _%%a echo.%%b>>bss.txt&echo.!_%%a!>>bss.txt
- )
复制代码
怎么修改 看不明白
作者: GNU 时间: 2016-12-13 08:33
回复 4# ads350668398
不懂就要多问问版主到底违反了哪条版规,以便日后改正。
作者: GNU 时间: 2016-12-13 08:36
- grep -B 3 "13" a.txt > b.txt
复制代码
作者: ads350668398 时间: 2016-12-13 08:38
本帖最后由 ads350668398 于 2016-12-13 08:47 编辑
回复 6# GNU
没有渠道沟通 晕了
set /a m=%%a-2&set _!m!=
set /a m=%%a-3&set _!m!=
set /a m=%%a-4&set _!m!=
得到第一个 13前面的几行怎么做才能【得到文本中所有 13】的前面几行啊??
作者: ads350668398 时间: 2016-12-13 08:44
回复 7# GNU
echo
grep -B 3 "13" ss.txt > bss1.txt
输出的文件bss1没有任何东西啊?
作者: GNU 时间: 2016-12-13 13:25
回复 9# ads350668398
如果你没有 grep.exe 的话需要先下载一个
http://www.bathome.net/s/tool/index.html
作者: ads350668398 时间: 2016-12-13 16:17
本帖最后由 ads350668398 于 2016-12-13 16:19 编辑
回复 10# GNU
gawk64.exe
F:\bat>echo
ECHO 处于打开状态。
F:\bat>grep -B 3 "13" ss.txt 1>bss1.txt
'grep' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
F:\bat>pause
请按任意键继续. . .
作者: GNU 时间: 2016-12-13 16:18
回复 11# ads350668398
是 grep 不是 gawk
作者: ads350668398 时间: 2016-12-13 16:27
回复 12# GNU
谢谢
grep.exe怎么个用法 链接麻烦啊发下 我怕我找的不对
作者: WHY 时间: 2016-12-13 16:50
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do (
- if "%%i" == "13" (
- if "!a!!b!!c!" NEQ "" (echo;!a!&echo;!b!&echo;!c!&echo;%%i) else echo;%%i
- )
- set "a=!b!"
- set "b=!c!"
- set "c=%%i"
- )
- pause
复制代码
作者: WHY 时间: 2016-12-13 16:51
- PowerShell -c "Select-String a.txt -Encoding Default -Pattern '^13$' -Context 3|%%{$_.Context.PreContext, $_.Matches[0].Value}"
复制代码
作者: GNU 时间: 2016-12-13 18:51
回复 11# ads350668398
把 grep .exe 跟 ss.txt 放到同一目录
或者把它放到 C:\Windows\System32 目录下面也行
作者: ads350668398 时间: 2016-12-14 06:48
回复 16# GNU
恩 grep 有哪些参数 是不是百科那个啊
作者: ads350668398 时间: 2016-12-14 07:01
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>cd..
C:\Users>cd..
C:\>grep /?
'grep' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\>
作者: GNU 时间: 2016-12-14 09:40
回复 18# ads350668398
再仔细阅读一遍16楼的描述:把它放到 C:\Windows\System32 目录下面也行
作者: GNU 时间: 2016-12-14 09:41
回复 17# ads350668398
grep --help 这个命令可以查看参数和用法
作者: ads350668398 时间: 2016-12-14 10:03
晕 全adc 这个不是论坛做的么怎么没有中文的啊
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |