Questions tagged «grep»

对于与grep有关的问题,这是一种用于搜索文件中文本模式的命令行工具。对于有关grep本身的问题或因使用grep命令行工具引起的问题,请使用此标签。

4
在第一个空格后使用sed / awk删除任何内容
aaaaaaaa 09 bbbbbbbb 90 ccccccccccccccc 89 ddddd 09 使用sed / awk / replace,在上面的文本中,我想删除每行第一个空格之后的所有内容。例如,输出将是: aaaaaaaa bbbbbbbb ccccccccccccccc ddddd 任何帮助将不胜感激。
20 sed  grep  awk 

3
如果通过cat管道传输,则grep直到EOF才输出
给出这个最小的例子 ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) 它输出LINE 1,然后,在一秒钟后,输出LINE 2,如预期。 如果我们通过管道 grep LINE ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) | grep LINE 行为与预期的情况相同。 如果,或者,我们将其通过管道传输到 cat ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" …
19 bash  grep  pipe 

2
grep在不运行CPU时会做什么?
在寻找与的匹配项时grep,我经常注意到,后续搜索所花的时间比第一次搜索少得多,例如25s与2s。显然,这不是通过重用上次运行的数据结构来实现的,而应该重新分配这些数据结构。在上运行time命令grep,我注意到了一个有趣的现象: real 24m36.561s user 1m20.080s sys 0m7.230s 其余时间去哪里了?我能做些什么使它每次快速运行吗?(例如,在grep搜索文件之前,让另一个进程读取文件。)
19 grep  performance 

2
Grep:在手册页标题中搜索单词时出现意外结果
尝试在macOS上grep手册页时遇到奇怪的行为。例如,Bash手册页显然出现了以下字符串NAME: $ man bash | head -5 | tail -1 NAME 如果我为grep name获得了结果,但是如果我为grep获得NAME,则不会: $ man bash | grep 'NAME' $ man bash | grep NAME 我尝试了其他我知道的大写单词,搜索SHELL没有BASH结果,而搜索了结果。 这里发生了什么? 更新:感谢您提供所有答案!我认为值得添加我遇到的环境。我想编写一个bash函数进行包装,man并且在尝试查找内置shell的手册页的情况下,跳至Bash手册页的相关部分。也许有更好的方法,但是这是我目前所拥有的: man () { case "$(type -t "$1")" in builtin) local pattern="^ *$1" if bashdoc_match "$pattern \+[-[]"; then command man bash | less …

5
带有逻辑运算符的grep
是否有类似grep的实用程序,使我能够使用逻辑运算符进行grep搜索。我希望能够自由地嵌套和组合逻辑结构。例如,这样的事情应该是可能的: grep (term1 && term2) || (term1 && (term3 xor term4)) * 我意识到可以使用vanilla grep和其他bash脚本来完成此操作,但我的目标是避免这样做。
19 grep 

5
为什么行尾$锚不与grep命令一起使用,即使行前^锚也是如此?
对UNIX来说是很新的知识,但对编程却不是新知识。在MacBook上使用终端。为了管理和搜索用于填字游戏的单词列表,我尝试使用Grep命令及其变体来方便使用。似乎很简单,但是早就习惯了我认为应该是一个简单的案例。 当我进入 grep "^COW" masternospaces.txt 我得到了我想要的:以COW开头的所有单词的列表。 但是当我进入 grep "COW$" masternospaces.txt 我希望得到以COW结尾的单词列表(有很多这样的单词),并且什么也没有返回。 该文件是纯文本文件,每行在所有大写字母中只有一个单词(或没有空格的单词短语)。 知道这里会发生什么吗?
19 grep  newlines 


3
从grep输出中排除文本行很长的文件
我经常运行grep命令来查找代码中的内容,但是Web项目的问题是,经常会有压缩的JavaScript和CSS文件创建一行巨大的文本,因此,如果找到匹配项,则整个终端窗口将填充了超过1000行,因此很难找到我要的内容。 那么有没有办法避免文件中的单行文字超过200个字符?
18 grep 

11
从大型文件中获取大量Grep模式
我有一个文件,每天增长约200,000行,并且全部由以下三行组成: 1358726575123 # key Joseph Muller # name carpenter # job 9973834728345 Andres Smith student 7836472098652 Mariah Anthony dentist 现在,我还有另一个文件,可以从中提取大约10,000个键模式,例如1358726575123。然后,我for使用这些模式运行循环,并且必须对照第一个文件检查它们。如果文件不包含这种模式,则将模式保存在第三个文件中以进行进一步处理: for number in $(grep -o '[0-9]\{12\}' file2); do # finds about 10.000 keys if ! grep -q ^$number$ file1; then # file1 is a huge file printf "$number\n" >>file3 # …
18 grep  awk  database  text 


4
输出到stdout并同时grep到文件中
我有一个将文本输出到的脚本stdout。我想在终端中看到所有这些输出,同时我想过滤一些行并将其保存在文件中。例: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ cat out.file Line A Line C 我想在终端中查看第一个命令的输出,并将第二个命令的输出保存在文件中。同时。我尝试使用tee,但没有结果,或者更好,结果相反。
18 grep  pipe  stdout  tee 

5
合并两个列表,同时删除重复项
我有一个使用Busybox(OpenWRT)的嵌入式Linux系统-因此命令受到限制。我有两个看起来像的文件: 第一个档案 aaaaaa bbbbbb cccccc mmmmmm nnnnnn 第二档 mmmmmm nnnnnn yyyyyy zzzzzz 我需要将这2个列表合并为1个文件,并删除重复项。 我没有差异(空间有限),所以我们得到使用的伟大awk,sed和grep(或可能被包含在一个标准的Busybox的实例其他工具)。转到合并文件,如: command1 > mylist.merge command2 mylist.merge > originallist 完全可以。它不必是单行命令。 我正在使用的Busybox实例中当前定义的函数(默认为OpenWRT):[,[[,arping,ash,awk,basename,brctl,bunzip2,bzcat,cat,chgrp,chmod,chown,chroot,clear,cmp, cp,crond,crontab,cut,date,dd,df,dirname,dmesg,du,echo,egrep,env,expr,false,fgrep,find,free,fsync,grep,gunzip,gzip,halt,head,hexdump, hostid,hwclock,id,ifconfig,init,insmod,kill,killall,klogd,更少,ln,锁,记录器,logread,ls,lsmod,md5sum,mkdir,mkfifo,mknod,mktemp,mount,mv,nc,netmsg, netstat,nice,nslookup,ntpd,passwd,pgrep,pidof,ping,ping6,pivot_root,pkill,poweroff,printf,ps,pwd,重新启动,重置,rm,rmdir,rmmod,route,sed,seq,sh,sleep,排序,启动停止守护程序,字符串,switch_root,sync,sysctl,syslogd,tail,tar,Tee,telnet,telnetd,test,时间,顶部,触摸,tr,traceroute,true,udhcpc,umount,uname,uniq,正常运行时间,vconfig,vi,看门狗,wc,wget,其中,xargs,是,zcat
18 bash  grep  sed  awk  busybox 

3
管道查找到grep -v
我正在尝试查找具有特定类型且不包含特定字符串的所有文件。我试图通过管道查找到grep -v来解决这个问题 例: find -type f -name '*.java' | xargs grep -v "something something" 这似乎不起作用。似乎只是返回find命令找到的所有文件。我想做的基本上是找到所有与某个文件名匹配的.java文件(例如,在SessionPb.java中以'Pb'结尾),并且其中没有'extends SomethingSomething'。 我怀疑我做错了。那么该命令应该是什么样子呢?
18 grep  find  pipe 

1
“ grep”的反义词是什么?
假设我要打印一长串字符串,而不是只显示包含特定模式的行(使用“ grep”来执行此操作),而是如何过滤出某些模式?
18 grep 

2
journalctl的可选单位列表
在CentOS 7服务器中,我想获取可以为其journalctl生成日志的可选单元的列表。如何更改以下代码来完成此操作? journalctl --output=json-pretty | grep -f UNIT | sort -u 在CentOS 7终端中,以上代码产生grep: UNIT: No such file or directory。 编辑: 以下Java程序将终止,而不会输出所需grep的任何输出。我如何更改内容以使Java程序除终端版本外还能工作? String s; Process p; String[] cmd = {"journalctl --output=json-pretty ","grep UNIT ","sort -u"}; try { p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((s = br.readLine()) != …
18 grep  systemd 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.