grep 相关问题

grep是一个最初为Unix编写的命令行文本搜索实用程序。它使用正则表达式来匹配文本,通常用作管道中的过滤器。仅当您的问题与使用基于grep或grep的API的编程相关时,才使用此标记。与使用或排除grep命令行选项本身有关的问题本身是偏离主题的。

仅删除两个文件之间精确数量的重复匹配

我想获取两个具有冗余条目的文件之间的剩余差异。 文件1.txt: 数据1 数据1 数据2 数据2 数据3 数据3 数据3 数据3 数据4 数据5 数据6 数据6 和 文件2.txt 数据1 数据2

回答 1 投票 0

grep -E(不工作)与 grep -Po(工作)

我有 ci cd 管道的 shell 脚本。我正在 intellij ide 终端中执行它。 latestVersionAvailable=$(curl -s $artifactoryPath/maven-metadata.xml | grep -Po '(?<=)'$VERSION...

回答 1 投票 0

如何在bash中用uniq子字符串分割字符串?

现在我有一个字符串 str="...AAA...",我想将其拆分为 3 个子字符串变量 sub1 sub2 sub3 AAA 是 sub2 并且是一个独特的模式,不会出现在 sub1 和 sub3 中。还有所有的...

回答 1 投票 0

如何将 Postgresql“psql”错误传递给 grep?

我正在运行一个 psql 查询,如下所示: $ psql --file=foo.sql "BAR-DB" 其中 foo.sql 包含查询。 foo.sql 的语法错误,因此输出是错误消息列表。我的计划是通过管道输出...

回答 1 投票 0

获取 Git 控制的文件夹中所有未版本化文件的列表

在 Git 控制的文件夹中获取未版本控制的文件列表比实际需要的更烦人。除非我真的不擅长阅读手册页,否则看起来 Git 并没有提供一种工具来...

回答 4 投票 0

Git diff:仅显示已删除(未移动)的行

Git diff 有很棒的 --color-moved 选项。所以我看到 Git 可以检测行何时被移动,但实际上不能被删除。 我需要检测已删除但未删除的行。只需 grep 输出...

回答 1 投票 0

搜索 2 个字符串并在匹配行的开头添加 string3

我想在文件的每一行中搜索第一个字符串“abc”,如果存在,则在同一匹配行上搜索第二个字符串“xyz”,然后在匹配行的开头添加第三个字符串“//”。 我试过了...

回答 1 投票 0

如何在104GB文件中仅一行搜索特定文本?

我刚刚使用 y-cruncher 计算完 1110 亿位 PI 数字,并有 104GB 的文件。 我遇到了问题。 我想玩玩,尝试在那里搜索名称、值、标题和...

回答 3 投票 0

正则表达式提取 R 中的部分文件名

我正在将多个 Excel 文件读入 R,并且我想使用部分文件名作为数据。 我的文件名在列表中,如下所示: “文件夹//study30/01_study30_Baseline.xlsx”和...

回答 1 投票 0

如何截断 grep 或 ack 返回的长匹配行

我想对通常有很长行的 HTML 文件运行 ack 或 grep。我不想看到很长的线反复换行。但我确实想看看围绕着的长线的那一部分......

回答 11 投票 0

如何在很长的行上进行类似 grep 的搜索?

grep 非常擅长查找与模式匹配的行。但是,如果您有一个包含极长行的文件(例如 100MB 文件),并且您想要在其中查找与模式匹配的块,该怎么办? 佛...

回答 2 投票 0

在命令行解析HTML;如何捕获<strong></strong>中的文本?

我正在尝试从 HTML 输出中获取数据,如下所示: 目标1无空格 .... Target2 带空格 我正在尝试从 HTML 输出中获取数据,如下所示: <strong>Target1NoSpaces</strong><span class="creator"> .... <strong>Target2 With Spaces</strong><span class="creator"> .... 我正在使用管道系统将数据缩减到我想要达到的目标。到目前为止,这是我的方法: grep "/strong" output.html | awk '{print $1}' Grep“/strong”以获取包含目标的行;效果很好。 通过管道连接到“awk '{print $1}”。当目标没有空格时,这在情况#1 中有效,但在目标有空格时的情况#2 中失败。仅保留第一个单词,如下所示: <strong>Target1NoSpaces</strong><span <strong>Target2 无论是在我的 awk 中还是在不同的命令中,您对正确命中目标有什么建议吗?任何快速而肮脏的东西(grep、awk、sed、perl)将不胜感激。 更新: 我很欣赏使用适当的 HTML 解析器或工具进行抓取的建议。然而,在我正在研究这个问题时,运行脚本的进程不需要做更多的事情,只需从使用 curl 检索到的网页中提取行即可。 尝试 pup,一个用于处理 HTML 的命令行工具。例如: $ pup 'strong text{}' < file.html Target1NoSpaces Target2 With Spaces 要通过 XPath 搜索,请尝试 xpup。 或者,对于格式良好的 HTML/XML 文档,请尝试 html-xml-utils。 使用 mojolicious 及其 DOM 解析器的一种方法: perl -Mojo -E ' g("http://your.web") ->dom ->find("strong") ->each( sub { if ( $t = shift->text ) { say $t } } )' 在 grep 中使用 Perl 正则表达式的后视和前视功能。应该比使用 awk 更简单。 grep -oP "(?<=<strong>).*?(?=</strong>)" file 输出: Target1NoSpaces Target2 With Spaces 添加: Perl 正则表达式在 Ruby 中的多重匹配的实现可以匹配多行中的值: ruby -e 'File.read(ARGV.shift).scan(/(?<=<strong>).*?(?=<\/strong>)/m).each{|e| puts "----------"; puts e;}' file 输入: <strong>Target A B C </strong><strong>Target D</strong><strong>Target E</strong> 输出: ---------- Target A B C ---------- Target D ---------- Target E 这是使用 xmlstarlet 的解决方案 xml sel -t -v //strong input.html 尝试在没有真正的 HTML 解析器的情况下解析 HTML 是一个坏主意。话虽如此,对于您提供的具体示例,这是一个非常快速且肮脏的解决方案。当存在多个时,它将不起作用 <strong> 标记在一行上,当标记超过一行时,等等 awk -F '<strong>|</strong>' '/<strong>/ {print $2}' filename 您永远不需要 grep 和 awk 并且字段分隔符不必是空格: $ awk -F'<|>' '/strong/{print $3}' file Target1NoSpaces Target2 With Spaces 但是,您确实应该为此使用合适的解析器。 自从你标记了 perl perl -ne 'if(/(?:<strong>)(.*)(?:<\/strong>)/){print $1."\n";}' input.html 我很惊讶没有人提到 W3C HTML-XML-utils curl -Ss https://stackoverflow.com/questions/18746957/parsing-html-on-the-command-line-how-to-capture-text-in-strong-strong | hxnormalize -x | hxselect -s '\n' strong 输出: <strong class="fc-black-750 mb6">Stack Overflow for Teams</strong> <strong>Teams</strong> 仅捕获内容: curl -Ss https://stackoverflow.com/questions/18746957/parsing-html-on-the-command-line-how-to-capture-text-in-strong-strong | hxnormalize -x | hxselect -s '\n' -c strong Stack Overflow for Teams Teams

回答 8 投票 0

一行中捕获组出现的最小次数的正则表达式

我有一个文本文件,其中每一行由一系列用空格分隔的数字组成,后跟一个单词。这些数字仅由数字 1 到 6 组成,每个数字中的数字都是 o...

回答 1 投票 0

使用多种模式从文件名中提取第一个日期

我有一个输入文件,每行包含 1 个字符串 input.txt(实际有25k行) 一 二 三 然后我有一个包含许多文件的目录(实际上是 50 个文件) 2022-04-01.csv 东西;一个;更多_东西 是...

回答 1 投票 0

为什么 grep 忽略“python3 -m http.server”输出的第一行?

由于某种原因 grep 不会打印命令输出的第一行: python3 -m http.server python3 -m http.server # 打印:在 0.0.0.0 端口 8000 上提供 HTTP 服务 (http://0.0.0.0:8000/) ...

回答 1 投票 0

Grep 命令根据单词位置搜索显示

嗨,我正在尝试搜索字符串并根据位置显示作品 例如显示第三个单词test,fine,true 这是测试 这可以 这是真实的 尝试了不同的选项但找不到任何...

回答 1 投票 0

比赛结束后在线打印所有内容[重复]

我有一个很大的文本文件,中间包含一个唯一的字符串。我想使用 grep 打印字符串后面的所有内容。 猫文本文件| grep“目标字符串” 这亮点

回答 4 投票 0

使用 grep 在 telnet 连接的输出中查找单词

我想使用telnet连接到系统并检查响应中是否有外国信息。 我在尝试 ... 回声退出 |远程登录 192.0.0.1 443 | grep -q“外国” 成功的连接...

回答 1 投票 0

如何删除文件中所有以“/var/log/edb/pgpool4.3/”开头并以“.log:”结尾的子字符串?

我需要帮助删除填充中以“/var/log/edb/pgpool4.3/”开头并以“.log:”结尾的所有子字符串。 这是文件的一部分 /var/log/edb/pgpool4.3/edb-pgpool-4.3-

回答 1 投票 0

REGEX (regex_search) 就像 Linux EGREP - 使用多模式/范围使用一个 with_items 循环显示模式匹配行(带空格)

Ansible / ansible-playbook 2.9.27 我有以下剧本,我只想显示那些与给定的多“egre...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.