Questions tagged «grep»

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

6
从给定的模式集中删除不以模式开头的行
我有一个包含如下数据的文件: report aaaaaaaa - .. -th bbbbbbbbb -to ccccccccc .. --. 问题:我想删除任何不以以下字符串开头的行: report -th -to 这意味着所需的输出将删除所有那些中间不需要的点和哈希,并且将如下所示: report aaaaaaaa -th bbbbbbbbb -to ccccccccc sed/ awk/ grep/等任何解决方案,将工作。

5
grep如何抑制不匹配文件的显示?
我正在尝试使用来查找包含特定单词的文件grep。目录中有许多文件(> 500) 我运行的命令 $ grep 'delete' * 输出量 validate_data_stage1:0 validate_data_stage2:0 validate_data_stage3:0 validate_data_stage4:0 validate_data_stage5:0 validate_input_stage1:0 validate_input_stage2:0 validate_input_stage3:0 validate_input_stage4:0 .... and hundred of such lines 这些是不包含给定匹配项的文件。我想禁止这些行显示到标准输出。我知道-qswitch,但是那样会抑制完整的输出,这是我不想要的。 我怎么做?

3
使用tail时禁止显示“文件被截断”消息
我使用拖尾一个日志文件tail -f messages.log,这是输出的一部分: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget tellus sit amet odio porttitor rhoncus. Donec consequat diam sit amet tellus viverra pellentesque. tail: messages.log: file truncated Suspendisse at risus id neque pharetra finibus in facilisis ipsum. 它显示tail: messages.log: file truncated文件何时被自动截断并且应该发生,但是我只想tail向我显示没有此截断消息的输出。 我已经尝试过使用,tail -f messages.log | grep …
11 grep  tail  output 

11
Grep匹配并提取
我有一个包含行的文件 proto=tcp/http sent=144 rcvd=52 spkt=3 proto=tcp/https sent=145 rcvd=52 spkt=3 proto=udp/dns sent=144 rcvd=52 spkt=3 我需要提取原是的值tcp/http,tcp/https,udp/dns。 到目前为止,我已经尝试过了,grep -o 'proto=[^/]*/'但是只能提取as的值proto=tcp/。
10 awk  grep 

3
如何在bash脚本中为unicode grep
if grep -q "�" out.txt then echo "working" else cat out.txt fi 基本上,如果文件“ out.txt”在文件中的任何位置都包含“ ...”,我希望它回显“工作”,并且如果文件“ out.txt”在文件中的任何位置均不包含“。”,那么我想它来猫out.txt 编辑:所以这就是我在做什么。我试图蛮力的openssl解密。 openssl enc成功返回0,否则返回非零。注意:您会得到误报,因为AES / CBC只能根据正确的填充来确定“解密是否有效”。因此,该文件将解密,但它不是正确的密码,因此其中会出现乱码。乱码中的常见字符是“。”。因此,如果输出包含“ ...”,我希望do循环继续进行。 这是我的git链接https://github.com/Raphaeangelo/OpenSSLCracker 这是脚本 while read line do openssl aes-256-cbc -d -a -in $1 -pass pass:$line -out out.txt 2>out.txt >/dev/null && printf "==================================================\n" if grep -q "�" out.txt then : …

2
grep单字母单词的奇怪行为
我正在使用大致的代码从文本中删除停用词 我有以下 $ cat file file types extensions $ cat stopwords i file types grep -vwFf stopwords file 我期待结果: extensions 但我得到了(我认为不正确) file extensions 就像file停用词文件中已跳过该词一样。现在,这里的凉爽一下:如果我修改停用字词档案,通过改变单个字/字母i在第一行,其他任何ASCII字母以外f,i,l,e,那么同样grep命令给我的不同,正确的结果extensions。 这是怎么回事,我该如何解决? 我在Mac OSX GNU bash 4.4.12(1)版上使用grep(BSD grep)2.5.1-FreeBSD
10 grep  osx  freebsd 

3
如何从lshw grep两行?
我想grep主板序列号和计算机的产品型号。我用了 sudo lshw | grep -m1 serial: grep序列号(因为多次出现“ serial:”,而我想要的是第一个。因此,我该如何同时对“ product:”进行grep呢?也有多次出现product,第一个又是我想要的那个 lshw 返回此: user@ubuntu:~$ sudo lshw ubuntu-pc description: Notebook product: 23252DG (LENOVO_MT_2325) vendor: LENOVO version: ThinkPad X230 serial: R9TWZVR width: 64 bits capabilities: smbios-2.7 dmi-2.7 vsyscall32 configuration: administrator_password=disabled chassis=notebook family=ThinkPad X230 power-on_password=disabled sku=LENOVO_MT_2325 uuid=01ECC0B1-8251-CB11-8538-B7D9EC435D9B *-core description: Motherboard product: 23252DG vendor: LENOVO …

3
“ ls -a |的奇怪行为” grep ^ \。”
我想列出一个密码的内容,只显示以点开头的文件。我尝试过,ls -a | grep ^\.但是我无法弄清楚为什么输出中还包含不以点开头的文件。例如: Pictures .pip .pki .profile projects Public 我知道我可以实现自己想要的,ls -ld .*只是对grep的这种行为感到好奇,我无法解释。

3
如何删除多行文本文件中大括号之间的所有文本?
例: This is { the multiline text file } that wants { to be changed } anyway. 应成为: This is that wants anyway. 我在论坛中找到了一些类似的 主题,但是它们似乎不适用于多行大括号。 如果可能的话,我更喜欢一些单行方法,例如基于grep,sed,awk等的解决方案。 编辑:解决方案似乎还可以,但是我注意到我的原始文件包括大括号嵌套。因此,我要提出一个新问题。谢谢大家:如何删除多行文本文件中嵌套大括号之间的所有文本?

4
替换包含换行符的字符串
使用bash外壳程序,在具有以下行的文件中 first "line" <second>line and so on 我想更换的一次或多次出现"line"\n<second>用other characters,并获得每一次: first other characters line and so on 因此,我必须用特殊字符(例如"和)<和换行符来替换字符串。 在其他答案之间进行搜索之后,我发现该命令sed可以在命令的右侧(因此other characters字符串)接受换行符,但不能接受左侧的换行符。 有没有一种方法(比this更简单)使用sed或获得此结果grep?


6
bash查找以字符串开头的行
我有一堆文件,我想找到其中一个包含以某个字符串开头的连续行的文件。 例如以下文件: Aaaaaaaaaaaa Baaaaaaaaaaa Cxxxxxxxxx Cyyyyyyyyy Czzzzzzzzz Abbbbbbbbbbb Bbbbbbbbbbbb Caaaaaa Accccccccccc Bccccccccccc Cdddddd Ceeeeee 有多个以'C'开头的行,因此我希望通过命令找到该文件。 例如以下文件: Aaaaaaaaaaaa Baaaaaaaaaaa Cxxxxxxxxx Abbbbbbbbbbb Bbbbbbbbbbbb Caaaaaa Accccccccccc Bccccccccccc Cdddddd 总会有一行以'C'开头,我不要这个文件。我想到使用a grep或a,sed但我不知道该怎么做。也许使用正则表达式^C.*$^C或类似的东西。任何的想法 ?
10 bash  sed  grep  string 

3
grep查找“ Foo”的实例,其中“ Bar”没有出现在10行之内
假设我要在整个树中搜索出现“ Foo”的所有CPP文件。我可以这样做: find . -name "*.cpp" | xargs grep "Foo" 现在,假设我只列出那些在上一个结果的三行之内没有出现其他字符串(例如“ Bar”)的实例。 因此,给出两个文件: cpp文件 1 Foo 2 qwerty 3 qwerty b.cpp 1 Foo 2 Bar 3 qwerty 我想构建一个简单的搜索,在其中找到a.cpp中的“ Foo”,但找不到b.cpp中的“ Foo”。 有没有一种方法可以以相当简单的方式完成此任务?
10 grep 

6
正则表达式如何从文件中取出多行?
正则表达式如何从文件中取出多行? 我经常想通过正则表达式获得多行/修改多行。一个例子: 我正在尝试读取XML / SGML文件的一部分(它们不一定格式正确或语法可预测,因此正则表达式比适当的解析器更安全。此外,我希望能够完全做到这一点在外壳脚本(在Solaris和Linux上运行)中仅知道一些关键词的非结构化文件。 XML示例: <tag1> <tag2>bar</tag2> </tag1> <tag1> <tag2>foo</tag2> </tag1> 从这里,我想阅读<tag1>如果其中包含foo某处。 像一个正则表达式(<tag1>.*?foo.*?</tag1>)应该给予正确的部分,但是等工具grep,并sed只为我的单线条的工作。我怎样才能得到 <tag1> <tag2>foo</tag2> </tag1> 在这个例子中?
10 shell  sed  grep 


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.