Tag: grep

在`byobu`的`windows.tmux`中`watch`,`tail`,`grep`组合

我正在(重新)为我常用的byobu会话编写我的windows.tmux 。 以下是我的确切要求: 我想有一个带根提示的标签(或窗口?)。 (一开始,它等待sudo passwd)。 我希望第二个水平分割。 在上半部分,我想监视我的/var/log/syslog和下面的dmesg 。 到目前为止,我可以通过以下方式实现: new-session -AD -s ‘root’ sudo su – ; new-window -n log watch -n 1 tail -n 15 /var/log/syslog split-window watch dmesg | tail -15; 然而问题(这与这个线程完全无关)我的syslog中有很多条目(几乎每秒4/5行),我想在监控时避免这种情况。 所以我想在这些方面grep -v 。 watch , tail和grep的组合可以根据我的需要实现(感谢钢铁驱动器的答案)。 watch -n 1 ‘tail -n 15 /var/log/syslog | grep -v -E “pattern1|pattern2″‘ 这里开始出现问题:如果我在window.tmux包含以下行 new-window […]

对于同一行上的多个实例,使用grep重复整行匹配

这个问题的一个分支: 在从以下文件中搜索字符串“banana”时,我们分别想要1,2,3和7行的1,2,3和7个实例。 grep输出的数量应该等于匹配实例的数量,同时仍然返回整行。 There is one banana here There are two banana banana here There are three banana banana banana here Basically there is no limit to how many banana banana banana banana banana banana banana we can have In fact we need not have any too! 注意:如果我们删除输出中整行的限制,我们有: grep -no “banana” tempfile 返回 1:banana 2:banana […]

使用grep和whoami列出当前用户不拥有的进程

ps aux –sort=-%cpu | grep -v ‘whoami’ ps aux –sort=-%cpu | grep -v ‘whoami’命令应该输出非有效用户启动的进程。 但是,它会打印出我的用户进程以及其他用户的进程。 请解释一下是什么问题。

在csv文件中搜索模式

我有file.csv看起来像这样 4,6,18,23,26 5,12,19,29,31 2,5,13,16,30 9,10,24,27,32 4,5,10,19,22 4,6,8,10,25 2,3,4,25,11 我想找到一些模式,并将它们保存在另一个日志文件file.log ,并从第一个文件中删除它们。 理想的Perl或grep 例如,如果x + 1 = x2,在3的范围内,则删除该行并将其存在于另一个文件中以及它存在的位置。 那么2,4,5,25,11将从file.csv和2,4,5,25,11中删除我会发现像row 7: 2,3,4,25,11 was removed from file.csv 。 我正在努力寻找序列

grep – 排除不是字符串子串的字符串

我通过以下示例在Ubuntu 16.04上解释我的问题:该文件是: # cat file aaa aaaxxx aaaxxx*aaa aaa=aaaxxx bbbaaaccc aaaddd/aaaxxx 我想显示包含aaa但不在aaaxxx 唯一组合中的所有行。 我想要这样的输出: # grep SOMETHING-HERE file … aaa aaaxxx*aaa (second aaa is the hit) aaa=aaaxxx (first aaa is the hit) bbbaaaccc (aaa in any other combination but not aaaxxx) aaaddd/aaaxxx (similar to above) 我试过像grep -v aaaxxx file | grep aaa这样的东西 grep -v aaaxxx […]

如何命令grep不显示搜索到的字符串?

我想在文件中打印一行的一部分。 整条线看起来像这样。 Path=fy2tbaj8.default-1404984419419 我想在Path=之后只打印字符。 我试过grep Path filename | head -5 grep Path filename | head -5 。 但它不起作用。它仍然显示整条线。 我怎样才能做到这一点?

在当前目录中递归搜索字符串

我想从我所在的目录中递归搜索所有文件以获取特定字符串。 我试过了 grep -r -i my_string 我在一个带有两个小文件的测试文件夹中尝试了它,但它找不到字符串。 另外,有没有特殊的方法来定义“包含”而不是匹配整个单词?

使用grep with pipe和&ers来过滤find中的错误

我正在使用cygwin在cygdrive上找到一个文件。 但是,我需要抑制权限被拒绝的消息(否则结果会隐藏在错误消息中)。 以下命令有效: find -name ‘myfile.*’ |& grep -v “Permission denied” 我不明白为什么需要将&符号放入此命令中,本来可以预期这会起作用,但事实并非如此。 find -name ‘myfile.*’ | grep -v “Permission denied” 请解释&符号的含义。

两个大文件的区别

我有“test1.csv”,它包含 200,400,600,800 100,300,500,700 50,25,125,310 和test2.csv,它包含 100,4,2,1,7 200,400,600,800 21,22,23,24,25 50,25,125,310 50,25,700,5 现在 diff test2.csv test1.csv > result.csv 不同于 diff test1.csv test2.csv > result.csv 我不知道哪个是正确的顺序,但我想要别的东西,上面的两个命令都会输出类似的东西 2 > 100,4,2,1,7 3 2,3c3,5 4 < 100,300,500,700 5 21,22,23,24,25 9 > 50,25,125,310 我想只输出差异,因此results.csv应该是这样的 100,300,500,700 100,4,2,1,7 21,22,23,24,25 50,25,700,5 我尝试了diff -q和diff -s但他们没有做到这一点。 顺序无关紧要,重要的是我只想看到差异,没有>也不是空白。 grep -FvF在较小的文件上做了伎俩而不是在大文件上 第一个文件包含超过500万行,第二个文件包含1300个。 所以results.csv应该会产生~4,998,700行 我也尝试过grep -F -x -v -f ,它不起作用。

grep – 列出找到匹配项的文件名

我在目录中有一堆.html文件。 我想查看每个文件并匹配一个模式(MD5)。 所有这一切都很容易。 问题是我需要知道找到匹配项的文件。 cat *.html | grep 75447A831E943724DD2DE9959E72EE31 仅返回找到匹配项的HTML页面内容,但它不会告诉我找到它的文件。如何让grep向我显示找到匹配项的文件名?