我想在通常有很长行的HTML文件上运行ack或grep。我不想看到很长的线反复缠绕。但我确实希望看到一条长线的那一部分,它围绕着一个与正则表达式匹配的字符串。如何使用Unix工具的任何组合来实现这一点?您可以使用grep选项-o,可能还可以将模式更改为“{0,10}.{0,10}”,以查看相关上下文:
-o, --only-matching
Show only the part of a matching line that matches PATTERN.
通过cu
我需要从一个文件中找到一些匹配的条件,然后递归地在以前匹配的文件中找到下一个条件,我有这样的东西
input.txt
123
二十二
三十三
您需要在以下文件中查找上述术语的文件,挑战是如果在10个文件中找到123,则应仅在这10个文件中搜索22个,依此类推。。。
例如f1、f2、f3、f4…..f1200等文件
所以我需要grep-w“123”f*| grep-w“123”|
手动列出它们是不可能的,因此没有更简单的方法吗?也许从元编程的角度来看会有所帮助。让grep输出一系列grep命令。或
标签: Grep
pattern-matching
假设我们有一个输入字符串,比如
Nice
我们有模式
D*A*C*N*a*g*.h*ca*e
然后“Nice”将与模式匹配。(*表示0次或多次出现,表示一个字符)
我认为在这种情况下(也许)使用grep比java更好。如何在grep中执行此操作?使用相同的正则表达式:
grep 'D*A*C*N*a*g*.h*ca*e' <<EOF
Nice
EOF
如果输入是“很好”,它仍然打印它!它是如何工作的?
grep '^D*A*C*N*a*g*.h*ca*e$' <<E
基本上,我有一个文件中的朋友名单。我想写一个脚本,将使用该名单的名称和格雷普手指为这些名称
最后,我希望打开一个新的终端窗口,并说:
嘿$USER已经登录了
一旦该用户登录,我希望睡眠脚本将好友名称移动到另一个列表中,该列表也会查找注销
但现在,当我的grep搜索条件通过手指时,我一直在试图记住如何在文件中有一个名字列表
差不多
finger | grep ? | cut -c 11-25
friends.txt
FRIENDS='amy|beth|clara|dale'
findfrie
我有一个文本文件,其中包含以下内容(例如):
我尝试在一对引号之间包含所有字符串,最后我使用以下命令结束:
grep -Po '"\K[^"]+"' file
这个命令给了我如下信息:
One"
Two "
Three "
Four "
foo "
baz"
zoo"
而我想要的来自上面的结果是我想要的输出:
One
Two
Three
Four
foo
baz
zoo
请有人帮我从上面的grep输出中删除最后一个“。我不想从输出中删除空格。我没有任何扩展到多行
我有一个列表,需要提取以下模式
函数名(
funcNameOther(
所有以“'”结尾的函数名后面都有一个换行符“egrep-o”。*\($”对我来说很有帮助,如果你想知道的话
grep '($' file
如果这不符合您的要求,请提供一些更有用的示例输入和预期输出。C:\Program Files(x86)\Microsoft SDK\Windows\v5.0\Include中的WinBase.h是输入文件。需要从中提取所有函数名,如DecodePointer(、EncodeSyst
文件1:
期望输出:
Btr_0449a 447
Btr_0449 447
我希望grep找到'Btr_0449',而不是'Btr_0449a'。似乎我做错了什么,因为:
Btr_0449 447
这应该做到:
grep -F "Btr_0449"
Btr_0449a 447
Btr_0449 447
从grep手册页:
“-w仅选择包含构成整词的匹配项的行。”这应该可以做到:
grep -F "Btr_0449"
Btr_0449a 447
Btr_04
很多时候,我不得不在命令行中这样做,我通过管道连接到grep,希望匹配两个不同的表达式。(A或匹配A或B)
例如,我想为foo[0-9]+或bar[0-9]+grep generate_out的输出。我当然可以执行两次:
generate_out| grep "foo[0-9]+"
generate_out| grep "bar[0-9]+"
但通常情况下,generate_out非常昂贵,我不想运行它两次(或者存储它的输出)。相反,我只想使用一个表达式:
generate_out
我正在尝试将grep与pwd命令一起使用
因此,如果我输入pwd,它会显示如下内容:
/home/hrq/my-project/
但是,对于我正在制作的脚本,我需要将它与grep一起使用,因此它只打印hrq/之后的内容,因此我需要始终隐藏我的主文件夹(/home/hrq/)摘录,并且只显示向前的内容(例如,在本例中,仅显示我的项目)
可能吗
我试过类似的东西
pwd | grep-ov'home',因为我看到“-v”标志将等效于NOT运算符,并将其与仅匹配“-o”的标志相结合。但是它不起作用。
标签: Grep
osx-mountain-lion
mac os 10.8下的grep(version info:grep(BSD grep)2.5.1-FreeBSD)的股票版本在以line regex模式(-x)运行时,似乎存在模式共享公共前缀的问题。在下面的最小示例中,我希望grep报告“test”和“test2”,但只报告“test”。(单词regexp模式(-w)也是如此)
是否有其他人进行过类似的观察,甚至知道解决方法?已验证;这看起来确实像苹果和/或FreeBSD grep中的一个bug。(这对我来说完全不奇怪;FreeBSD gr
我知道如何和grep一起做,但现在我知道了。我试过:
pcregrep -M -1 -rl '."\n' 2012 -name en*.txt
但它不起作用
基本上,我希望它在文件夹2012中递归地显示所有名为en_blahblahblah.txt的文件的前面一行和下面一行。但我试过那个命令,但没用。
我需要使用pcregrep,因为grep不支持换行。使用-A行和-B行选项
[aman@aman test]$ pcregrep -M -B 2 -A 2 "C\nD" temp
And f
我在搜索中使用grep,它会返回显著的误报,而且对我来说,通过检查来确定好的结果可能比编写更复杂的grep表达式更容易
要做到这一点,我需要为每个结果看到多行
我可以(如何)指示grep在每个匹配的上方和下方返回1-2行吗?如果您有GNUgrep,那么:
grep-a2-b2或grep-c2
-A代表after
-B代表before
-C代表上下文(前后)
来源和更多选项:对于此查询和其他类似查询,“man grep”是您的朋友。您尝试过什么?你的grep表达式是什么?你想搜索什么?出于某种原因
我希望每X分钟对最后X分钟的日志进行一次grep(例如:每5分钟对最后5分钟的日志进行一次grep),而不对任何旧的日志进行grep。最简单的方法是什么?Ruby 1.9.3解决方案
您需要的第二部分,我尚未测试:(
注意:如果您知道“ruby”的位置,请更改shebang(脚本的第一行),
出于安全原因
#! /usr/bin/env ruby
require 'date'
require 'pathname'
if ARGV.length != 4
$stderr.pri
我想在匹配后将括号内的数字变灰
给定以下foo.txt
foo: "32.1" bar: "42.0" misc: "52.3"
我想提取条形图后面的数字,42.0
下一行将匹配,但我想提取数字。我想我可以通过管道将输出返回到grep中,查找\d+。\d+,但是有更好的方法吗
grep -o -P 'bar: "\d+.\d+"' foo.txt
一种方法是使用“向前看”和“向后看”断言:
grep -o -P '(?<=bar: ")\d+.\d+(?=")'
一种方法是使用“向前
我想知道文本中是否有相似且前后一致的行。例如,我想知道是否有任何一行的前后都有“cccc”
aaaaaaaa
bbbbaaaa
ccccxxxx
ddddaaaa
eeeeaaaa
ccccxxxx <---
ccccyyyy <---
ddddaaaa
eeeeaaaa
但都有“cccc*”的台词
我知道一个简单的问题。。。
另一个例子:
搜索“芬兰”的副本:
冰岛
德国
芬兰西斯尼斯布诺马奇酒店
法国
finlandwillmatchthis如果两行都以至少3个相同的字
我想从命令行将目录(和子目录)中的所有.docx文件转换为文本文件(这样我就可以在这些文件上使用grep)。我找到了这个
unzip -p tutu.docx word/document.xml | sed -e 's/<\/w:p>/\n/g; s/<[^>]\{1,\}>//g; s/[^[:print:]\n]\{1,\}//g'
我试着将两者混合,但没有成功。。。一个命令行,将同时做这两件事将不胜感激
谢谢您以下脚本
递归地转换运行它的目录中的所有doc
我试图在文件中查找字符串的所有实例-我正在使用find,它工作得很好,但是,它不仅返回文件,而且返回文件中该字符串的每个实例,这将导致一个巨大的长列表,而我实际上只需要文件名
我正在使用:
find . -name '*.php' -exec grep -i 'MATCH' {} \; -print
这将显示MATCH的每个实例,然后是文件名、下一批和文件名,如下所示:
MATCH
MATCH
MATCH
./filename
MATCH
MATCH
MATCH
./filename2
./
我有一个很大的文件,其中有许多行是这样开头的:
22 16052167 rs375684679 A AAAAC . PASS DR2=0.02;AF=0.4728;IMP GT:DS
在这些行中,DR2值的范围从0到1,我想提取那些包含高于0.8的DR2值的行
我尝试了两种sed或awk解决方案,但两种方案都不起作用。。。我尝试了以下方法:
grep "DR2=[0-1]\.[8-9]*" myfile
这将匹配值大于或等于0.8的行。如果您坚持严格大于,那么我必须添加一些复杂性以防止0.8
我希望你做得很好
请给我一个fasta文件,比如
>contig1
sequence
>contig2
sequence
>contig3
>sequence
每个序列都有它的长度
我想确定大于9000的重叠数(因此序列长度大于9000)
谢谢你你已经标记了grep,所以grep-c.{9000\}你的\u fasta.fa可能是最简单的方法
一种更为“生物信息学”的方法是使用seqkit():seqkit seq-m 9000您的_fasta.fa>newfile.t
我试图找到以下模式的位置和频率
x37 x41
x42 x43
x44 x45
x46 x63
x75 x76
x81 x82
x83 x95
x96底部1
底部2底部3
中段1
右1 Top3
在htdocs目录中
提前谢谢 这将为您提供以下位置:
grep -rE '(x(37|4[1-6]|63|7[56]|8[123]|9[56]))|Bottom[123]|Middle1?|Right1|Top3' /directory/to/search
这将为您提供以下频率:
grep -orE
我有一个日志文件,需要对其进行解析以获得三个值:
RSSUrl、RSSCategory和Url val,我可以分别获得这些值,但我不知道如何将这三个值结合在一起,所以我有每个值的上下文
以下是文件的基本格式:
<key id="1" goodness="0" softCached="false" hits="0" creationMillis="1327941760709" creationMillisAgo="-978" lastHitMillisAgo="INF"
用单引号和双引号括起来的grep模式之间有什么区别吗
grep "abc" file.txt
及
我这样问是因为我无法独自测试所有可能的案例,我不想陷入一个我出错的案例:)如果你有特殊的角色,我会看到不同:
例:
shell将尝试展开变量$barbase,这可能不是您想要做的
如果你打字的话
grep 'foo$barbase' file.txt
$bar按字面理解
最后,默认情况下,总是喜欢单引号,它更强大。
在双引号中,以下字符具有特殊含义:“$”,
“`'、“\”,以及启用历史扩展时的
我想知道是否可以使用grep查找以下两个字符串之间的所有文本:
mutablePath = CGPathCreateMutable();
...
CGPathAddPath(skinMutablePath, NULL, mutablePath);
基本上,第一行和最后一行总是一样的,中间会有一大堆随机的东西。我想计算一下上面第一行和最后一行的所有实例之间出现的行数
这可能吗?你不能用grep来做这件事,但你可以用awk来做。这是完全未经测试的,但应该有效:
awk 'BEGIN { state
我当前正在尝试分析以下文件类型(.fasta):
通过组ID提取序列。我有一个ID文件要提取,格式如下:
GroupID=0002
GroupID=0003
我一直在使用以下命令:
$ grep -A 1 -f groupIDs_to_extract.txt sequences_file.fasta > output.txt
其思想是使用输入文本文件中的每个ID执行grep,并包含以下上下文行以实际提取序列。因此,在我的示例中,输出将是组2和组3中的所有序列:
>SeqID=00
标签: Grep
large-filesword-count
有哪些选项可以在非常大的文件上进行字数统计
我相信整个文件在一行,这可能是问题的一部分,正如下面的一个答案所指出的
在本例中,我有一个1.7GB的xml文件,并试图快速计算其中的一些内容
我找到了这个帖子
这种方法在一定程度上适用于我
高达300Mb左右(40000次)的内存是不错的选择
cat file.xml | grep -o xmltag | wc -l
但是如果超过这个大小,我就会“内存耗尽”试着像这样使用GNU Parallel。。。它将file.xml拆分为1MB的块(或
我想通过使用获取当前正在运行的所有服务的名称
sudo service --status-all | grep -E '[A-Za-z0-9-]+$'
在我看来,它应该从输出中选择正确的子字符串,但出于某种原因,所有以
[ ? ]
不匹配?问题是,具有[?]的管道位于stderr而不是stdout上,因此grep无法看到它们使用|和对两个管道进行grep查看以下示例:
service --status-all |& grep -E '[A-Za-z0-9\.-]+$'
请注意,我还
作为一项学校练习,我必须从文件中找到以下特定词语:
从第一行开始,第一个字母是C,下一个字母是元音,最后第三个字母必须是辅音。这个词必须只有3个字母
这个问题必须使用grep“解决”,但也欢迎其他解决方案
grep -E "^C[aeiouAEIOU]….." ./myfile.txt
我不知道如何找到第三个字母。辅音字母与匹配元音字母的方式相同,只是需要更多字符?并使用$匹配第三个字符后的行尾。仅供参考,您可以使用-i使其不区分大小写,这样您就不必在字符集中同时放置大小写字母。我想知道是
当我进行以下grep时,我得到的结果无法向自己解释:
host:/usr/local/tomcat > grep '-XX:PermSize=256m' *
RELEASE-NOTES: http://www.apache.org/licenses/LICENSE-2.0
RUNNING.txt: http://www.apache.org/licenses/LICENSE-2.0
好了,我的正则表达式中没有一个字符有特殊的含义(在方括号内,-有一个,但没有)。我还把
我正在使用命令搜索Unix中从给定目录开始的文件,这些文件以*.sas结尾并包含字符串DB2。然后,我想在结果文件集中搜索字符串DSN=或DATASRC=并打印包含这些字符串的行。这就是我正在使用的FInd命令:
find '/shrproj/' -type f -name '*.sas' -exec grep -il 'DB2' {} \; 2> /dev/null | xargs egrep -Ri 'DSN=|DATASRC='
这为我提供了所需的输出:
我在远程服务器中有一些日志文件,并对它们进行了分析
我通常把它们下载到我的本地电脑上,然后找到一些文件,其中有特定的文本
我的命令是这样的:
rsync -avg host:path/*20141223* .
find . -name "*.gz" -exec zgrep "text text1" {} +
(文件为gz格式)
我的问题是:
我只想下载一些包含特定文本的文件,而不是从服务器下载所有文件
请给我一些建议来帮助我。试试这个:
rsync -avg "$(
ssh host
有人能帮我做这个命令吗
下面是我正在使用的代码
I have a text file which has list of file names, I want to search these file names in a folder which has thousands of files and move the matching files to different location on linux.
#/bin/bash
file=“/home/BILEKJ/reproces/da
我有一个包含如下数据的文件:
Index: ....
bla
bla
bla
Index: ....
bla
bla
bla
Index: ....
bla
bla
bla
是否有一种方法可以获取每次出现的索引的行号:,然后将该行号添加到包含每次出现的索引的行号的数组中:使用grep-n和剪切
已搜索,但找不到与此类似的问题:
我正在尝试对以下文件使用egrep:
ABCD(something): Some very good code;
ABCD(somethingElse): Some other very good code;
ABCD(somethingElseElse): Some other very good code;
Some very good code;
Some other very good code;
Some o
txt文件是:
bar
quux
kabe
Ass
sBo
CcdD
FGH
在本例中,我只想用一个大写字母对单词进行grep,但当我使用“grep[A-Z]”时,它会显示所有带大写字母的单词
有人能在这里找到“grep”解决方案吗?我的预期产出是
Ass
sBo
grep'\'my.txt
将匹配ASCII文本文件my.txt中的行,如果它们至少包含一个完全由ASCII字母组成的单词,其中正好有一个是大写字母。您似乎有一个文本文件,每个单词都有自己的行
你可以用
grep '^[[:lo
如何对行中包含两个输入字的行进行grep?我在寻找包含这两个单词的行,我该怎么做?我试过这样的烟斗:
grep -c "word1" | grep -r "word2" logs
它只是在第一个管道命令后阻塞
为什么?你为什么通过-c?这将只显示匹配的数量。同样,没有理由使用-r。我建议你阅读mangrep
要对同一行中存在的两个单词进行grep,只需执行以下操作:
grep "word1" FILE | grep "word2"
grep“word1”文件将打印文件中包含word1的所有行
我尝试使用perl正则表达式模式,因为我想匹配可能的跨模式,如:
...
text text Name
Surname text text
...
如果我想匹配“姓名”
因此,使用|grep-Pzo”(?s)Name.Name“对ASCII非常有效,但是如果我想在utf-8编码文件上尝试同样的方法,我会得到:
Binary file (standard input) matches
当我用它喂grep时,没有结果。我还尝试了使用常规文件grep-Pzo”(?s)Name.姓氏“utf-8.t
标签: Grep
freebsdkillpidnohup
我需要一个shell脚本来向父进程和子进程发送HUP
我正在将freeBSD与tcsh一起使用#/垃圾箱/垃圾箱
不知何故,我需要将pgrep的PID输出通过管道传输到shell脚本中的循环中的kill-HUP
最终,我希望将此脚本作为cron作业运行
我只是还没有这些技能
谢谢-布拉德(这不是一个完整的答案,但我不能在没有至少50个声誉的情况下发表评论)
首先,FreeBSD上的/bin/sh是与Boune兼容的shell,而不是tcsh(即/bin/tcsh)。一个开始应该是这样的:
#!/
我使用以下命令来grep当前目录和所有子目录:
grep -r 'some text' */*
这在Cygwin中可以正常工作,但当我将Console2或ConEmu等Windows cmd模拟器配置为使用Cygwin时,该命令不起作用:
grep: */*: Invalid argument
*/*没有移植到这些应用程序,是否有一些技术原因
是否有其他方法在当前目录和子目录之间进行grepping
非常感谢*/*对于unix风格的终端模拟器中的当前目录不正确,请使用/*或仅使用即可
使用或
我正在尝试grep命令的输出,该命令输出未知文本和每行一个目录。下面是我的意思的一个例子:
.MHuj.5.. /var/log/messages
文本和目录可能会因时间或系统而异。不过,我想做的就是能够将目录grep出来并将其发送到一个变量
我环顾了四周,但不知道如何用grep结束一个单词。我知道我可以开始搜索短语寻找“/”,但我不知道如何告诉GERP停止在这个词的末尾,或者如果它会考虑下一个“/”一个新词。列出的目录可能会更改,因此我不能假设每次列出的目录数量相同。在某些情况下,将列出多个
我想grep out>contig_18,它后面的文本行,并在>contig_19之前停止
我不知道如何在不给出确切的换行数的情况下,grep>contig_18之后的多行文本
例:注:通常重叠之间会有1000多行文字
>contig_18
GCACAGACGGCCGACTTTAGAGAATCTGAGTTTGGAGCGCTGCCGGT
GAATCCAGATGACTTAACCGGCCACGTCTCCCTATGACCTGCATTTT
GAAAGAGATCTGCTTCAGATGCGATCTCCA
第1个问题:我的代码只有在grep采用如下常量模式时才有效:
echo "$s" | grep -oP '(?<=class="A3">).*(?=</a>)'
输出为:
/bin/sh -> dash
致以最良好的祝愿
请不要用BASH代码。只有SH.在阅读本文后:我想出了如何使我的代码正确工作并更具可移植性:
#! /bin/sh
filename='data.txt'
Ptr_ValidChannel='><a title="Id: '
indesign中的GREP是否有助于打破界限
示例:(下面是我希望grep帮助我从“免费”和“同等”中划清界限的格式)这可能吗
You and your guest are invited to enjoy one complimentary
MAIN COURSE when a MAIN COURSE
of equal or greater value is purchased.
如果我理解你的问题,你有一条长线如下:
You and your guest are invited to e
假设有三个字符串“Hair”、“Haair”和“Haaair”,当我使用grep-E“^Ha{1}”时,它会返回前三个单词,而我只需要“Hair”,因为我要求返回一行,以H开头,后面紧跟字母“a”一次 grep不检查其输入是否与给定的搜索表达式匹配。Grep查找与搜索匹配的输入子字符串
见:
但是这就足够grep输出整行了
同样,当你说
grep -E '^Ha{1}' <<< Haaair
(?!a)是一个零长度断言,类似于^。它不匹配任何字符;如果在第一个之后有一个a,它
标签: Grep
findfull-text-search
我想搜索一个目录(不包括包含任何特定单词的路径,最好是正则表达式模式),并找到所有内容与我的查询匹配的文件(最好是正则表达式模式,我会使其不区分大小写),并且在两个特定日期之间进行了修改
基于,我当前的命令是:
find /mnt/c/code -type f -mtime -100 -mtime +5 -print0 |
xargs -0 grep -l -v "firstUnwantedTerm" 'mySearchTerm'
显然,此查询并不排除包含“firstUnw
当我确认某些内容时,通常会得到如下输出:
Ack: tmp/nonces/4e8c9698-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-mRPtTixYnWzzGcPpbIwx9scpDnE: Permission denied
Ack: tmp/nonces/4e8cbba9-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-oARiyZ2BwCEskqiPzrfQd1FI_fI: Permi
我必须计算包含数千个单行文件的文件夹中的匹配数“@”。我正在尝试使用grep,但没有希望,关于使用其他程序(比如python)有什么建议吗
此命令给出所有文件中的总命中数:
grep -rso @ *.tre | wc -l
5350
这只会在每个文件中吐出拳头命中:
grep -rosc @ *.tre
cluster517.tre:1
cluster547.tre:1
cluster558.tre:1
cluster559.tre:1
cluster562.tre:1
我想要这样的东西
调用API时返回以下文本(单行):
data=$(gcloud dns record-sets list --zone=production-internal | grep proj-name-name-dp)
echo $data
proj-name-name-dp.int.proj-name.abc.title.com. CNAME 300 proj-name-name-dp.int.proj-name.abc.title.com.
然而,我只想得到proj-name-n
我有许多文件的名称如下。我想用中间的5位数字重命名这些文件。例如,将N18CMS95WS.12446_950C_wet.txt重命名为12446.txt
N18CMS95WS.12446_950C_wet.txt
N18CMS9WS.12507_900C_wet.txt
R418WS.15069_800C_wet_air.txt
N18CN85S.13375_850C_dry.txt
R4195S.13648_950C_dry.tx
在Mocha中,我们可以使用--grep标志来选择运行的特定测试:
mocha --grep 'my test'
但是当测试数量增加时,特定的测试用例可以共享同一个名称,这使得单个grep不足。我希望有类似“嵌套grep”的东西,能够更具体地选择测试,关于它的父母。可能吗?或者,可能还有其他一些选项来选择一个测试,以便以更具体的方式运行?好的,幸运的是,我发现我们可以这样做:
mocha /path/to/specific/file -g 'pattern for specific test
我得到了要求的答案,但肯定有更好的方法来写我的问题?
grep-v“mywords.txt | grep-E”(.*b.*d |.*d.*b)”| egrep“\b[a-z]{6}\b”
还有,如果我需要匹配b和d以上的值,该如何编写
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 26 页