我在 linux 中遇到管道问题,
ls | grep feedback
Run Code Online (Sandbox Code Playgroud)
我有一个打开的 xdg-open 的别名,如何让 grep 中的文件名直接打开
这不起作用
ls | grep feedback | open
Run Code Online (Sandbox Code Playgroud) 我在当前目录中有一个“.c”(c 文件)列表。
我必须在当前目录中找到所有 .c 文件。
可以使用的命令 id ls *.c
但是,另一种方法是使用 grep。
所以如果我给
ls | grep *.c
Run Code Online (Sandbox Code Playgroud)
它不会为此命令返回任何结果,而对于其他文件类型,如“.java”、“.txt”,它会给出预期的结果。
grep 命令中的“*.c”有什么特殊含义吗?或者我可以知道这种行为的原因吗?
如何在 Linux 中简化此命令,包括cat管道到grep.
cat foo*.txt | grep cow
Run Code Online (Sandbox Code Playgroud)
有人告诉我,这是错误的做法。这是为什么?
假设我有一个文本文件,上面写着:
Hello my name is agz.
I am asking a question that is important.
Run Code Online (Sandbox Code Playgroud)
如果我输入: grep -v "is" /path/to/file,我应该没有输出,因为两行都有“is”。
如果我输入:grep -o "is" /path/to/file,我应该得到:
is
is
Run Code Online (Sandbox Code Playgroud)
但是我想得到:
Hello my name agz.
I am asking a question that important.
Run Code Online (Sandbox Code Playgroud)
(只是缺少的是)有没有办法使用 grep 和最小正则表达式来实现这一点?
在 linux 上运行以下命令时,我得到了奇怪的输出,包括旧的 makefile 输出和进程树
ps axuwfw
另外,以下命令有什么用处以及它是如何工作的?
ps axuwfw | grep -v grep | grep -i screen
ps axuwfw | grep -v grep | grep -i tmux
以上两个命令在示例中返回 431 和 7 来自此处,但在我的系统中,它返回一些以前运行过的较旧的 makefile 输出和截断的进程树。
$ ps ax | grep 6557
#=> 6582 s003 S+ 0:00.01 grep 6557
Run Code Online (Sandbox Code Playgroud)
但是用活动监视器快速检查,没有进程的 pid 为 6557。而且网上的一切都说 grep 在没有匹配时应该返回 0。
我有一个内容类似于以下内容的文件:
google.com,9,AB+CD,nonAB+nonCD
youtube.com,9,AB+CD,AB+CD
facebook.com,20,AB+CD,nonCD
Run Code Online (Sandbox Code Playgroud)
列数不固定。但是第一列是一个 URL,第二列是一个数字,从第三列开始是用逗号分隔的关键字,但它们因站点而异。
我想计算可以控制行中哪些关键字的 URL(行)数。例如,
1)AB+CD没有nonAB和nonCD。注意:AB+CD这个词可以出现很多次。2) AB+CD 没有出现nonCD(但如果有别的也可以)
如何在一行中搜索一个字符串并确保不存在另一个字符串。当我使用:
grep 'AB+CD' test.txt > result.txt
Run Code Online (Sandbox Code Playgroud)
它打印找到“AB+CD”的每一行。
如果我想打印只有 'AB+CD' 的行怎么办:
youtube.com,9,AB+CD,AB+CD
Run Code Online (Sandbox Code Playgroud)
或者有 'AB+CD' 和除了 'nonAB' 之外的任何东西:
youtube.com,9,AB+CD,AB+CD
facebook.com,20,AB+CD,nonCD
Run Code Online (Sandbox Code Playgroud)