我试图使用grep和-v来表示反转匹配,同时使用-e来表示正则表达式。我很难把语法弄对
我在尝试类似的东西
tail -f logFile | grep -ve "string one|string two"
如果我这样做,它不会过滤
如果我把它改成
tail -f logFile | grep -ev "string one|string two"
我明白了
grep: string one|string two: No such file or directory
我尝试过使用()或引
我正在尝试创建一个别名,简称为文件搜索(fs)。这需要一个参数(搜索项)。然后它使用grep在目录树中搜索
例如:
fs'函数我的函数()
我做错了什么
alias fs='grep -R "$1" .'
您尝试的是搜索当前目录本身,而不是其中的文件,当然也不是其子目录中的文件。您想要这样的东西(从内存中,我现在不在Unix机器上):
find . -type f | xargs grep "$1"
我正在使用grep-f函数从文件中提取与特定模式匹配的行。假设我的模式文件是pattern.txt,如下所示
1
2
3
4
5
与此模式匹配的文件是file.txt
1::anv
2::tyr
3::yui
4::fng
5::gdg
6::ere
7::rer
8::3rr
9::gty
现在,当我做grep-f pattern.txt file.txt时,我得到了这个->
1::anv
2::tyr
3::yui
4::fng
5::gdg
8::3rr
上面输出的最后一行导致了我的
多亏了这个论坛,我现在有了这段代码,它从我拥有的一个程序中获取一个输出并保存在一个文件中:
#!usr/bin/python
import os
os.chdir('./P574/J0998-1034')
os.system('vap -c freq *.SFTC > 1400list.txt')
我想添加一个过滤器(所以只取包含“1369.000”的行),所以我将最后一行修改为:
os.system('vap -c freq *.SFTC | egrep 1369.000 >
我在这件事上卡住了。我想匹配所有以8个空格开始的行,然后是双引号
cat file.txt | grep '[[:space:]]\{8\}"'
我做错了什么?它还匹配以8个以上空格开头的行。cat file.txt|grep'^[:space:]\{8\}'
如果不将^,它将匹配靠近“的8个空格,您不需要将cat导入grep文件,只需执行egrep'^{8}”文件字符匹配行首,因此模式被锚定
$ cat file
"match"
no match
"no
我正在使用grep分析攻击后的日志文件。
通常是这样
grep -F "POST /xxxxx.php" ./access-log
现在有人攻击了我的一些网站,但我不知道漏洞在哪里,也不知道攻击者的ip地址是什么。现在我想找到一个ip地址,他向我的多个网站发送了请求,如下所示:
abcde.com-log:123.123.123.123 - - [12/Jan/2013:08:41:08 +0100] "POST /xxxxx.php HTTP/1.1" 200 1234 "-" "-"
w
我试图提取文件中所有前导的7位十六进制字符串,该文件包含以下行:
3fce110:: ..\Utilities\c\misc.c(431): YESFREED (120 bytes) Misc
egrep与grep-E相同;它使用扩展的regexp
-o仅打印每行的匹配部分
^将匹配锚定到行的开头
[0-9a-f]{7}匹配七个十六进制字符。如果要匹配大写字母,请在此处添加A-F,或添加-i标志
\b检查单词边界;它确保我们不匹配长度超过7位的十六进制数
如果文件中的所有行都遵循给定的格式,
Grep通常用于显示包含指定模式匹配项的行。在AIX中是否有任何方法可以显示每个搜索文件中模式的匹配总数?也就是说,每一行的每一场比赛都应该被计算在内
我尝试了grep-c模式文件名,但无论匹配行包含多少个匹配项,这只会对每个匹配行计算一次。您需要先匹配模式,然后计算匹配数
o开关将在新行上产生每个匹配项
然后数一数行的总数
比如:
grep -o pattern filename | wc -l
查找b的3个实例。在此文件中:
$ cat file
a bc d be f
bg h
$ a
标签: Grep
echospecial-charactersvidos2unix
Linux:RHEL5 Tikanga
版本:2.6.18-402.el5(根据uname-a)
我正在创建一个文件,方法是从windows源文件(其中包含一些Version=x.x.xvalue)中删除一些行,然后将其放入新文件aa.txt。这适用于查找和放大零件
做一些类似于echo-n“AA”的事情;echo“$(grep”Version=[1-9]”/some/mounted/loc/windows/sourcefile.txt)-“>>aa.txt
我必须单独为AA使用echo-n,
粘贴最后一个发送行的输出:
8.4:
11.4:
cat /var/temp.txt
root 1558 0.0 0.4 129052 57764 ?? I 18May21 0:07.28 /var/python/bin/python
没有输出
这让我很困惑。可能是什么问题?我能修好它吗?(如果我通过SSH会话执行指令,输出是正确的)您的python版本是什么?和pexepct?您应该尝试client.sendline(“ps-aux>/var/temp.txt”
我有这个档案:
$cat foo
foo1
foo2
foo3
foo4
bar
我想让grep打印
foo3
bar
因此,基本上,我不知道如何排除除foo3之外的所有foo(例如-v)。可以通过以下方法完成:
grep -v '^foo[^3]$' foo
您仍然使用-vexclude标志,但只有在foo条目后面跟一个非3时才排除它们
然而,虽然这对给定的输入文件有效,但您也可能希望去掉上面只有foo的行。如果需要,请使用:
grep -v '^foo[^3]$' foo | grep
要查找子目录中扩展名为.out的所有文件路径,我使用
find . -name '*.out'
要在所有以.out结尾的文件中grep模式,我使用
grep pattern *.out
如何组合这两个命令,以便它找到所有文件,然后在这些文件中搜索greps
我正在寻找一个优雅的替代品
grep -r 'pattern' . | grep '.out'
find允许您使用-exec选项对找到的每个文件运行程序:
find -name '*.out' -exec grep -H pattern
我试图找出如何通过只搜索子目录中与字符串匹配的文件来加速递归grep
例如:
/foo/bar/baz/mylogs/somelog.log
/foo/bar/notme.log
/cat/dog/mylogs/anotherlog.log
我只需要grep*/mylogs/*
我可以找到以下所有日志文件
egrep -h -R --include \*.log '(pattherns|to|match)'
但这不
egrep -h -R --include \/mylogs/\*.log
在尾部输出中,我有以下字符串…使用grep命令如何搜索字符串“contentState\”:“STOPPED\”。我必须搜索整个字符串“contentState\”:“STOPPED\”
而不是只搜索STOPPED或contentState
我尝试了以下命令:但它不起作用
grep -e ""contentState\":\"STOPPED\" /opt/logs/out.log | tail -1
{\"eventType\":\"appAction\",\"action\":\"C
我试图选择一行,其中有一个名字“保罗”
这还会返回以paul henri开头的行。如何选择仅以“paul”一词开头的单行
(换句话说,如果后面跟有单词paul,则会选择破折号或斜杠/和点。)
更新:
多亏了蒂姆,这一切都成功了:
grep -w '^paul' some_file | grep -vE 'paul[-./?]'
您可以在模式上匹配^paul[^-]:
!grep -w '^paul[^-]' some_file
这将匹配以paul开头的任何行,该行后跟除破折号以外的一个或多
团队
我想grep一个子字符串容器,然后只输出那个字符串,而不是整行。我该怎么办?我知道我可以使用$awk空间和拉,但想知道如何使用grep吗
echo $test_pods_info | grep -F 'test-'
输出
test-78ac951e-89a6-4199-87a4-db8a1b8b054f export-9b55f0d5-071d-431-1d2ux0-avexport-xavierisp-sjc4--a4dd85-102 1/1 Running 0 19h
预期产量
t
我正在尝试下面的查询,但没有成功
grep -nr "[[:alnum:]]+\.[[:alnum:]]+\(\)" .
因此,根据我的逻辑,方法调用应该是一个或多个字母数字字符
[[:alnum:]]+
[[:alnum:]]+
后跟一个点
\.
后跟一个或多个字母数字字符
[[:alnum:]]+
[[:alnum:]]+
后接附加说明(仅适用于无效返回类型)
但这个查询不起作用。如何编写这样的查询 您需要使用“\+”而不是“+”,否则
有没有办法在文本文件中找到一个单词,该单词可能会被包装到下一行的未知位置,如本例中的表_名称
'select id, field1, field2 from ta' +
'ble_name where condition'
单词的两个部分由一个已知的顺序引号、空格、新行、六个空格和引号隔开
它可以通过两步过程来解决,即在执行搜索之前从文件中删除常量序列
无法使用标准grep执行此操作,对吗?不,您不能单独使用标准grep执行此操作,因为您无法将行分隔符从更改为\n。相反,您必须首先转换
我有一个日志文件。该文件包括在脚本运行结束时记录的几次总时间,“所用总时间:84848”。我正在尝试提取这段特定的信息,以便查看哪个脚本运行时间最长。这一部分也是线路的终点。号码后面什么也没有。因此,所需的输出如下:
TOTAL TIME TAKEN: xxxxx
TOTAL TIME TAKEN: xxx
TOTAL TIME TAKEN: xxxx
and so on...
所用总时间:xxxxx
所用总时间:xxx
所用总时间:xxxx
等等。。。
使用grep,我能够打印出包含上述字符串
在我的例子中,我想grep第四列中有数字4的行。第四列是最后一列。列之间用空格隔开。我有这个命令:
grep -P '^([^\s]*\s){3}4
但那个greps行包含了以4开头的数字,比如:454768,但我想这只对数字4有效
这根本不起作用:
grep -P '^([^\s]*\s){3}4\n
我个人认为,如果使用awk获取列,那么可以添加一个与行末尾匹配的$
您还可能需要插入符号来仅匹配以4开头和结尾的行
awk '{print $4}' | grep ^4$
我有一个以空格分隔的文件,如下所示:
$ cat in_file
GCF_000046845.1_ASM4684v1_protein.faa WP_004920342.1 Chal_sti_synt_C
GCF_000046845.1_ASM4684v1_protein.faa WP_004927566.1 Chal_sti_synt_C
GCF_000046845.1_ASM4684v1_protein.faa WP_004919950.1 FAD_binding_3
GCF_00004684
当我使用历史记录中的特定grep命令时,它不会给出任何结果。然而,在我的历史记录中,似乎来自不同地点的同一命令给了我数千行结果。下面是我的命令历史记录的复制和粘贴。519什么也没给我,而520能产生很多结果。而且,只要输入命令,就会得到很多结果
519 grep -r -i “agm/core”
520 grep -r -i "agm/core"
我在Windows10上使用GitBash。git版本2.16.2.windows.1
我能想到的唯一一件事是,在某个时候我使用了--e
我有很多(接近100个)大csv文件,第一列中有sellID。我知道一些sellID在2个或更多文件中重复了2次或更多次。是否可以使用grep查找所有这些重复的sellID(创建映射sellID-file\u名称)?或者存在另一个用于此目的的开源应用程序?我的操作系统-CentOS.相关问题:
您可以在一个文件中对所有文件进行分类,然后按照上面链接中的建议查找重复文件
顺便说一句,现在还不清楚您是想只保留复制品还是删除复制品。试试这个:
#Save duplicate columns
find
我正在使用操作系统字典文件进行扫描。我正在创建一个java程序,允许用户输入任意字母组合来查找包含这些字母的单词。如何使用grep命令执行此操作?要查找仅包含给定字母的单词:
grep -v '[^aeiou]' wordlist
上面过滤掉单词列表中除所列字符外不包含任何字符的行。这有点像是用双底片来得到你想要的。另一种方法是:
grep '^[aeiou]+$' wordlist
在整行中搜索一个或多个选定字母的序列
查找包含所有给定字母的单词要长一点,因为在我们想要的字母之间可能有其他
如何在一行内grep并打印不匹配的单词
例如,该行类似于“一二三”
我想要的是任何不是一的东西,并且被修剪(前导和尾随空格(可以是空格或制表符)被删除)
在这种情况下,如何使用sed获得“两三”?:
sed -r 's/\bone\b//g;s/^\s*|\s*$//g'
sed -e 's/[ \t]*one[ \t]*//'
例如
改用sed:
sed -r 's/\bone\b//g;s/^\s*|\s*$//g'
sed -e 's/[ \t]*one[ \t]*//'
这是我在使用grep时遇到的一个常见问题。当我执行以下操作时,假设文件第三列中的模式为'chr1':
grep 'chr1' file
如何避免获得结果,包括chr10、chr11、chr13等
谢谢 这似乎有效:
grep-w'chr1'文件因为您对特定列中的值感兴趣,所以最好使用awk:
awk '$3 == "chr1"' file
这将匹配文件中任何列中的chr1,而不是第三列。请参阅我的awk解决方案。
命令“grep-cblah*”列出了所有文件,如下所示
% grep -c jill *
file1:1
file2:0
file3:0
file4:0
file5:0
file6:1
%
我想要的是:
% grep -c jill * | grep -v ':0'
file1:1
file6:1
%
除了像上面那样对输出进行管道化和grep’ping之外,是否有一个标志来禁止列出计数为0的文件
SJ只需使用awk即可。e、 g.对于结束文件,使用GNU awk:
我试图让grep找到一个模式,但前提是它不在另一个模式后面。
例如,在下面的三行中,我正在寻找foo,如果不是在#后面的话(你猜为什么:-)
1./make_maps_meteo_ecmwf.pl:#foo
2./make_maps_meteo_ecmwf.pl:foo
3./make_maps_meteo_ecmwf.pl:foo#
我需要第2行和第3行,而不是第1行
这无助于:
grep'[^#].*foo'
管道grep将不起作用,因为它将排除第3行
grep'foo'| grep-v'#
我有一个如下所示的日志文件:
May 25 05:34:16 server sshd[1203]: Received disconnect from 192.0.2.2 port 39102:11
May 25 05:34:16 server sshd[1203]: Disconnected from 192.0.2.1 port 39102
现在,我想使用grep从一开始提取所有的ip地址和日期/时间字符串。我已经知道如何获得IP:
grep -o '[0-9]\{1,3\}\.[0-9]
这是Cisco交换机配置文件的示例。如果接口未使用,则应处于关闭模式
config.txt
!
interface GigabitEthernet0/0
shutdown
!
interface GigabitEthernet0/1
!
interface GigabitEthernet0/2
shutdown
!
interface GigabitEthernet0/3
!
!
interface GigabitEthernet0/1
!
!
interface GigabitEthe
我已经将png文件上传到我的dropbox中,您可以下载为/tmp/mount.png来重现我的输出。
曼格雷普:
-a, --text
Process a binary file as if it were text
使用grep在png文件中搜索“0.0.0.0”
grep -a "0.0.0.0" /tmp/mount.png
我从未亲眼见过0.0.0.0。
png文件是否真的包含字符串0.0.0.0
0.0.0.0的十六进制值为:
echo -n '0.
我目前在一个磁盘上有3TB的数据,其中包含数百个文件夹中的中小型文件。
我需要找到包含特定单词(不止一个单词)的特定文本文件。
我已经试过grep-ping了。
它的工作原理是打印每个文件的路径。
但这是一个很长的列表,我现在正在寻找一种可行的方法将它们复制到另一个文件夹
有什么想法吗
是否有办法将-exec cp-rv/estinationfolder放入语法中,并将所有结果复制到文件夹中?是的,当然有办法
您可以通过管道将grep输出传输到copy命令,并提供所需的目标目录
举个例子,
fi
当我键入此命令时
/usr/local/afs7/bin/afs|u paftools-a about.afs|grep TOTAL_文档
我得到一个结果
文件总数=74195份
如何提取整数(74195)后=
使用grep命令一种方法是使用grep:
$ echo "TOTAL_DOCUMENTS = 74195" | grep -o '[0-9]\+'
74195
或者,既然您知道这是最后一个字段,请使用awk:
$ echo "TOTAL_DOCUMENTS = 74195" | awk
我有一个包含标识符(每行一个)的文件,我希望通过未指定的分析运行该文件。如果一切正常,分析将输出另一个具有相同标识符的列表(不一定以相同的顺序)
但是,结果表明,没有对某些输入标识符进行分析,并且这些标识符不存在于输出文件中。这是因为互联网连接中断,所以程序跳过了一些标识符,并在互联网恢复时成功地继续向下搜索。这意味着被跳过的标识符散布在输入文件中
因此,输入文件中会有一些行在输出文件中不存在,我想提取这些行并重新运行分析。这听起来像是一个简单的grep-vf命令,但这里是它变得有点混乱的地方
我需要从ping类型的输出中grep一个连续的输出流,并检查模式“EOF”,如果找到,则退出。到目前为止,我已经在grep中使用了行缓冲模式,并且还尝试输出到一个文件,grep这个文件,但是没有能够让它工作。最后的办法是向社区寻求帮助。理想情况下,我不需要调试文件,只希望代码通过管道和if-then语句执行。
“Apt get install hping3”将获得hping3软件包
我当前的输出是源源不断的“EOF已达到,请等待几秒钟,然后按ctrl+c”,这就是为什么我尝试写入脚本以自行退出循
我在一个大型项目中加入了write(*,*)。现在我想要格雷普
grep -n 'write(*,*)' response.f
什么也没找到。为什么带括号的表达式不适用于经典grep?括号不是问题,但*是正则表达式元字符。请尝试grep-nF不解释为正则表达式:
grep -nF 'write(*,*)' response.f
或者,另一种选择是逃避:
grep -n 'write(\*,\*)' response.f
您的正则表达式被解释为“零或多个(,然后是零或多个,,然后是)括号不是
标签: Grep
pipecan-buscanutils
使用candump读取can总线时:
$ candump can0
如果我将其grep一次:
$ candump can0 | grep <whatever>
如果我尝试grep它两次:
candump can0 | grep 1A8 | grep 1A8
它什么也不返回
Ps:使用这个(candump-can0,,7ff | grep可以解决这个问题,但它只在这种情况下有效)
编辑:为了清楚起见,如果我对同样的东西进行两次grep,它仍然不起作用问题不是来自candump,而
我有两个文件,内容如下:
文件a
hello
hello-world
hell
文件b
hello-world
hello
我想使用fgrep执行文件匹配,所以我使用这个命令
fgrep-wf a b
我希望它能完全像这样匹配两行
你好
你好,世界
但是它只匹配hello world的部分,即
你好
你好-世界
有人能告诉我为什么我不能匹配整个hello world行,即使它在两个文件中都有?破折号可能算作分词,所以hello匹配。但是我如何将它包括在搜索中?为什么哪个字符串匹配重要,只要它
标签: Grep
command-line-arguments
我只是发现自己在做一些我经常做的事情,我想概括它,表达它,分享它,看看还有谁遵循这一普遍做法,找到一些可能相关的其他示例情况
通常的做法是,在执行当前任务之前,先故意出错,以确定其他一切都是正确的
具体来说,我想做的是在我们的代码库中找到使用DojoTextArea小部件的示例。我知道(因为我面前有它——存在证明)TextBox小部件至少存在于一个文件中。所以我首先寻找我知道的东西:
grep-r digit.form.TextBox | grep-v
svn
这是不对的——我犯了一个(对我来说
如何在GREP中只打印两个文本文件的不同行?
我只需要打印第二个文本文件中没有的行
谢谢。您可以使用-F-F:
这告诉您file1中没有(-v)出现在file2中的行,您可以使用-F-F:
这将告诉您file1中没有(-v)出现在file2中的行,您为什么需要使用grep
听起来你需要区分
您可以使用diff来比较它们:
$ diff file1 file2
1d0
< a
3d1
< c
$diff file1 file2
1d0
我有以下脚本:
grep "John" uk-500.html | cut -d "<" -f2 | grep -v "St"
问题是,我应该使用哪些属性使它以这种方式结构化:“姓氏、姓名”和之前没有html标记?有很多方法可以做到这一点。一种方法是在序列中再添加一个管道:
grep "John" uk-500.html | cut -d "<" -f2 | grep -v "St" | sed 's/^.*>//'
grep“John”uk-500.html | cut-
标签: Grep
variable-assignment
此代码块根据我正在测试的使用grep表达式的特性匹配一些文件,并将这些文件名的匹配部分完全按照我希望的方式输出到屏幕上
for filename in "$localpath"*; do
echo "$filename" | grep -P -o '[0-9]{4}+' | head -1;
done
但我需要将这些数据分配给一个变量,但没有成功。这就是我得到的
for filename in "$localpath"*; do
tstring=$("$filename" |
尝试从多个文件中grep一个短语,因为这些文件不断填充(日志),但提示使用该短语更新了哪个文件
例如:
grep bindaddr /vservers/*/var/log
让我明白:
/vservers/11010/var/log:bindaddr=xxx.xxx.xxx.xxx
/vservers/12525/var/log:bindaddr=xxx.xxx.xxx.xxx
/vservers/12593/var/log:bindaddr=xxx.xxx.xxx.xxx
这很酷,但我需要
好的,我在一个文件夹中有一个.GZ文件的音调,我希望递归地查看它们中的每一个,并将所有PNG文件提取到另一个目标文件夹中。我该怎么做
编辑:
我一直在终端上使用这个命令在GZ文件中找到一个字符串,并将整个文件复制到另一个目标目录。那就用它做点什么吧。有一些缺点。第一,当我输入“PNG”时,它会查找引用“PNG”而不是文件类型的CSS文件等文件。其次,除了复制整个文件外,它不会向目录输出任何内容。。我想解压这个文件
find . -type f -print0 | xargs -0 grep -l
我正在将文本文件中的所有匹配行(每行一个单词)写入输出文件,如下所示:
grep“匹配此”输入>输出
对于小于200MB的文件,这很好,但是一旦输入文件超过200MB左右,grep就会将大约14000个结果写入输出文件(~59kb),然后停止。我知道输入文件至少有200.000行匹配
我是否需要为更大的文件提供任何不同的参数,或者grep是否不适合此工作?它是如何停止的?有错误信息吗?不,它只是结束。就像“我完成了”一样。如果我检查输出并在输入文件中搜索最后一行,输入文件中只有大约1-2%的内容
我有一个fasta序列,我想过滤掉所有在标题中有单词片段的序列
我想我可以使用grep和-a1(因为蛋白质序列总是在一行上)和-I(以防片段没有大写)并将其与-v一起使用,但不知何故,反转结果并不能如预期的那样起作用
>tr|A0A534K2W8|A0A534K2W8_9EURY Epoxide hydrolase 1 (Fragment) OS=Euryarchaeota archaeon OX=2026739 GN=E6K10_05355 PE=4 SV=1
MSNTPDFNRR..
如何打印以字符串开头的单词?例如,从do开始
我的文本文件:
domino
doleto
defrad
domes
depo
dewalk
dorio
输出:
domino
doleto
domes
dorio
谢谢以^开始搜索字符串,例如^do尝试:
grep '^do' file
字符^表示该行必须用Do .< /P>开始,但这个命令PRIN也在Word的中间使用DO。我只需要以dot开头的单词如果单词以do开头,这个命令将在单词中间打印do。例如,doredo会被打印出来,而鱼雷不会
我有一个日志文件,其中行与行之间有字符串,如“true client ip=[1.1.1.1]”。我想写一个grep/sed命令来从文件中提取IP。提取此输出并将其写入另一个文件的最佳方法是什么
cache control=[无缓存,最大年龄=0],原点=[https://www.example.com],pragma=[no cache],te=[chunked;q=1.0],真正的客户端ip=[108.81.148.189],用户代理=[Mozilla/5.0(Windows NT 10.0
我正在尝试使用grep显示不以一个或多个字母开头,也不以一个或多个数字结尾的行
到目前为止,我得到的是
grep '^[^a-zA-Z]'
这显示了所有不以字母开头的行,因此,例如,a,abc不显示,但abc(有前导空格)显示正确
我不知道如何包括第二部分,这是不是结束在一个或多个数字
谢谢为什么不:
^[^a-zA-Z].*[^0-9]$
请注意,这不包括只有一个字符的情况。我最终使用了“^[^a-zA-Z].[^0-9]$”,这似乎为我提供了我应该期望的结果
我有一个文件名列表,路径如下
/some/path/or/another/RCrandomname.TRI
/another/path/NCrandomname2.TRI
/one/more/path/RCrandomname3.PCD
我只想选择基本名称以RC开头并具有扩展名TRI的文件名(及其路径)
在上面的例子中,我想得到
/some/path/or/another/RCrandomname.TRI
如果我有一个基本的名字,只有我能做到
ls | grep "^RC.*\.T
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 26 页