首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理脚本,用于提取两个给定单词之间的行

批处理脚本,用于提取两个给定单词之间的行
EN

Stack Overflow用户
提问于 2016-11-02 03:25:55
回答 3查看 1.8K关注 0票数 0

我需要从一个文件中提取两个给定单词之间的文本。

文件格式如下:

代码语言:javascript
复制
some lines
<name>text1</name>
some lines
some lines 
<name>text2</name>
some lines
<name>text3</name>
some more lines
  • 我需要提取所有出现在每个名称标记之间的文本。 在这里提取这段文字

上述文件的预期输出:

  • text1
  • text2
  • text3

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2016-11-02 04:22:51

对于提供的样本数据来说,这应该是可行的:

代码语言:javascript
复制
for /f "tokens=2 delims=<>" %A in ('type test.txt ^| findstr "<name>"') do @echo %A

如果在批处理脚本中使用此操作,请确保将%A更改为%%A。基本上,这将在包含<name>的行中运行,并使用delims=<>将行拆分为<>字符,给出了nametext in between/nametokens=2只将%A设置为第二个字符串。

请记住,如果您在<name>之前有任何内容,这是行不通的。这可能会使事情变得更复杂,然后我建议在另一种语言中使用一些解析库。

此外,如果要提取的文本包含<>,则此操作将无效。

票数 1
EN

Stack Overflow用户

发布于 2016-11-02 07:54:43

以下脚本提取作为命令行参数提供的文件的期望标记之间的文本:

代码语言:javascript
复制
@echo off
setlocal EnableExtensions DisableDelayedExpansion

rem // Resolve command line arguments:
for %%F in (%*) do (
    rem // Read a single line of text following certain criteria:
    for /F "delims=" %%L in ('
        findstr /R "^[^<>]*<name>[^<>][^<>]*</name>[^<>]*$" "%%~F"
    ') do (
        set "LINE=%%L"
        rem /* Extract the desired string portion;
        rem    the preceding `_` is inserted for the first token
        rem    never to appear empty to the `for /F` loop: */
        setlocal EnableDelayedExpansion
        for /F "tokens=3 delims=<>" %%K in ("_!LINE!") do (
            endlocal
            rem // Return found string portion:
            echo(%%K
        )
    )
)

endlocal
exit /B

只有在只有一个标记<name>,然后是一些文本本身不包含<>,然后是一个标记</name>的情况下,这个字符串才能工作;这个字符串必须在一行上,并且可以前面或者后面跟着一些文本,这些文本本身不包含<>

票数 0
EN

Stack Overflow用户

发布于 2016-11-02 08:09:46

假设输入文件是input.txt。

这应该是可行的:

代码语言:javascript
复制
grep '<name>.*</name>' input.txt | sed -r 's/<name>(.*)<\/name>/\1/'

grep发现sed行删除名称标记。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40371999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档