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

[文本处理] 批处理如何提取文本中指定内容的行及其前几行内容

本帖最后由 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 ( 呵呵不会了
1

评分人数

该个标题就符合规矩了么??

TOP

回复 2# ads350668398


    应该是提醒你论坛有类似帖子,自己搜

TOP

回复 3# Nsqs


    当然有 但是 我实际中不可用

TOP

本帖最后由 ads350668398 于 2016-12-13 08:42 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /inx "13" ss.txt') do (
  3.   set /a m=%%a-1&set _!m!=%%b
  4. )
  5. for /f "tokens=1* delims=:" %%a in ('findstr /in .* ss.txt') do (
  6.   if defined _%%a echo.%%b>>bss.txt&echo.!_%%a!>>bss.txt
  7. )
复制代码
怎么修改 看不明白

TOP

回复 4# ads350668398


    不懂就要多问问版主到底违反了哪条版规,以便日后改正。

TOP

  1. grep -B 3 "13" a.txt > b.txt
复制代码
1

评分人数

TOP

本帖最后由 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】的前面几行啊??

TOP

回复 7# GNU


    echo
grep -B 3 "13" ss.txt > bss1.txt
输出的文件bss1没有任何东西啊?

TOP

回复 9# ads350668398


如果你没有 grep.exe 的话需要先下载一个
http://www.bathome.net/s/tool/index.html
1

评分人数

TOP

本帖最后由 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
请按任意键继续. . .

TOP

回复 11# ads350668398


    是 grep 不是 gawk

TOP

回复 12# GNU


    谢谢
grep.exe怎么个用法 链接麻烦啊发下 我怕我找的不对

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4.     if "%%i" == "13" (
  5.         if "!a!!b!!c!" NEQ "" (echo;!a!&echo;!b!&echo;!c!&echo;%%i) else echo;%%i
  6.     )
  7.     set "a=!b!"
  8.     set "b=!c!"
  9.     set "c=%%i"
  10. )
  11. pause
复制代码
1

评分人数

TOP

  1. PowerShell -c "Select-String a.txt -Encoding Default -Pattern '^13$' -Context 3|%%{$_.Context.PreContext, $_.Matches[0].Value}"
复制代码

TOP

返回列表