给定一个包含的纯文本文件FOO=fooBAR=barBAZ=baz我们如何使用键grep获取值? 最佳答案 使用lookbehind:$grep-Po'(?我也喜欢awk:$awk-vFS="FOO="'NF>1{print$2}'filefoo或者更好:$awk-F=-vkey="FOO"'$1==key{print$2}'filefoo使用sed:$sed-n's/^FOO=//p'filefoo或者即使使用Bash-仅当您确信该文件不包含任何奇怪的值时-,您可以获取该文件并回显所需的值:$(sourcefile;echo"$F
我有大量文本文件需要定期进行grep处理。大约有230,000个文件,总计约15GB的数据。我已阅读以下主题:Howtousegrepefficiently?Howtousegrepwithlarge(millions)numberoffilestosearchforstringandgetresultinfewminutes我将使用grepping的机器是IntelCorei3(即双核),所以我无法在很大程度上并行化。该机器正在运行Ubuntu,我更愿意通过命令行完成所有操作。有什么方法可以索引或标记文本文件的内容以改进搜索,而不是每次都运行沼泽标准的grep?
ccze是一个出色的日志着色器。问题是,尽管手册中有说明,但/usr/lib64/ccze或$HOME/.ccze中没有插件。看起来所有的插件都被编译成二进制文件(所以它们不是真正的插件)而且我不能轻易修改突出显示。我想要实现什么?我需要添加更多模式以红色突出显示。尤其是被空格包围的单个0。因为我不能轻易修改ccze我正在考虑将它与grep结合起来:tail-f`/bin/ls-1td/var/log/updates/index_*.log`|ccze-A|grep--color'\|0'但这不会产生任何输出(挂起?)尽管事实上:tail-f`/bin/ls-1td/var/log/u
$catr12$catt2211$grep-frt2211结果是按照t中的顺序给出的,如何得到按r排序的结果? 最佳答案 您可以创建一个将所有内容保存在内存中的脚本,或者您可以应用Schwartziantransform.这是对后者的简要尝试。将您的r文件更改为sed脚本,该脚本为每个匹配打印一个索引号:/1/s/^/00001//2/s/^/00002/使用sed代替grep,并按前缀排序;然后丢弃前缀。sed-frt|sort-n|cut-d''-f2->output创建sed脚本应该不会太难;这是一个简单的Awk脚本(哦,讽刺
是否可以grepxargs产生的命令的结果?例如,我正在尝试以下命令findbranchprj-xyz-latest|sed's/^\(.*\/.*\)@@.*$/\1/'|xargs-I{}cleartoollsh{}|grep-m1'user'但似乎grep正在findbranch返回的整个结果集上执行,而不是lsh的个别结果作为一个例子,我想从上面得到的是,对于findbranch和sed组合返回的每个文件,我想找到某个用户最后修改的那个版本。注意如果有问题,findbranch是一个内部实用程序。 最佳答案 这种方法怎么样?
我创建了一个别名,以免每次我移动到一个新目录时都写ls:aliascl='cd_(){cd"$@"&&ls;};cd_'假设我有一个名为“下载”的文件夹(我当然碰巧有),所以我只需在终端中键入以下内容:clDownloads现在我会在“下载”文件夹中找到自己,并收到文件夹中所有内容的列表,例如:example.txt、hack.hs、picture.jpg、...如果我想移动到一个目录并查看是否有hack.hs,我可以尝试这样的操作:clDownloads|grephack我得到的只是输出:黑客.hs但我将保留在原来的文件夹中(这意味着我不在下载中)。我知道发生这种情况是因为每个命令都
考虑以下对这个玩具输入的grep命令:user@user:~$echo-e"a\nb\nc\nd\ne"|egrep"(b|d)"-C1-n1-a2:b3-c4:d5-e虽然这已经很不错了,但我想知道是否有某种技巧可以在不同的结果之间得到一个空行。类似于:user@user:~$echo-e"a\nb\nc\nd\ne"|egrep"(b|d)"-C1-n1-a2:b3-c3-c4:d5-e有吗?谢谢 最佳答案 不,你不能用grep做到这一点。你可以用awk做到这一点:$echo-e"a\nb\nc\nd\ne"|awk-vc=1'
我很久以前就知道这是为什么,但后来我忘记了,谷歌搜索了5分钟也没有找到答案。我写了一个有两个处理程序的python脚本。一种用于文件,一种用于流。一切如我所愿。现在,我想快速grep查找正在打印到终端的输出中的某些内容,但是通过grep管道传输脚本的输出似乎不起作用,因为所有输出仍然打印到终端。我正在使用unix和python2.7这可能是一个重复的问题,但我找不到答案。这是我的日志模块设置:defsetup_logger(verbosity):#logger=logging.getLogger(regress.app_name)logger=logging.getLogger('co
从过去的几天开始,我正在尝试开发一个正则表达式,它使用grep从提供给它的网页中获取所有外部链接。这是我的grep命令grep-h-o-e"\(\(mailto:\|\(\(ht\|f\)tp\(s\?\)\)\)\://\)\{1\}\(.*\?\)""/mnt/websites_folder/folder_to_search"-r现在grep似乎返回给定行中外部链接之后的所有内容例子如果一个html文件在同一行包含这样的内容谷歌https://yahoo.com'>雅虎然后给定的grep命令返回以下结果http://www.google.com">GoogleYahoo这里的想法是
我正在尝试更改作业中的版权标题。我能够使用以下命令列出所有带有版权header的文件:grep-rnicopyright*通过上面的命令,我得到了大约1000个文件。谁能帮我一下如何一次性更改所有文件? 最佳答案 这将对其中包含“版权”一词的文件应用文本更改(不区分大小写):forfilenamein*;doifgrep-qi"copyright""$filename";thensed-i''-e's/oldtext/newtext/'"$filename"fidone请注意,这仅适用于当前目录。要处理子目录中的文件,您可能需要使用