相关疑难解决方法(0)

如何在grep中包含空格字符?

我有一个名为 example 的文件

$ cat example

kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
Run Code Online (Sandbox Code Playgroud)

当我grep用来获取之前有空格的行时.pdf,我似乎无法获取它。

grep *.pdf example
Run Code Online (Sandbox Code Playgroud)

什么都不返回,(我想说,“grep,在之前匹配零个或多个空格.pdf”,但没有结果)

如果我使用:

grep i*.pdf example

kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf
Run Code Online (Sandbox Code Playgroud)

所有行都返回,因为我在说“grep,匹配我i一次或零次,好的。”

最后:

grep " *.pdf" example
Run Code Online (Sandbox Code Playgroud)

没有结果返回

对于这个样本,我想看看

grep .pdf 
Run Code Online (Sandbox Code Playgroud)

作为输出

我的想法有什么问题?

command-line regex grep

24
推荐指数
1
解决办法
12万
查看次数

有没有办法为某些 bash 命令禁用星号 * 插值?

我希望能够写入* 我的脚本,并保持*原样(即,没有扩展)。

Bash 会尝试用匹配此模式的本地文件替换它,如果此模式不存在,bash 将不加修改地传递星号。

我不想逃。我知道这是可能的( *, '*' )。

例如

myscript --arg *   --- will pass local files to the script
myscript --arg=*   --- will pass "--arg=*", since there are no filenames starting with "--arg=<...>"
Run Code Online (Sandbox Code Playgroud)

我可以告诉 bash 在某些情况下跳过通配符解释吗?例如,以myscript?开头的命令

command-line bash wildcards

7
推荐指数
1
解决办法
1180
查看次数

扩展和基本正则表达式中的前导星号是什么意思?

*RE 开头的语义是什么?有记录(man 7 regex)它只匹配基本 RE *(即,它变成普通字符),但是扩展 RE 会发生什么?通过示例,它看起来与 '.*' 具有相同的语义,但我找不到任何来源。

prompt> echo "hello" | grep -E  '*'
hello
prompt> echo "hello" | grep  '*'
prompt> 
Run Code Online (Sandbox Code Playgroud)

regex grep

4
推荐指数
2
解决办法
829
查看次数

星号不适用于 grep

我搜索了ki*按下面的例子,它应该已经回到了前三行。我不确定为什么它在没有ki匹配的情况下返回最后一行。

$ grep "ki*" trial_file.txt
kartik,27,Bangalore,Karnataka
pulkit,25,Bangalore,Karnataka
kit,28,Bangalore,Karnataka
kush,24,Pennsylvania,Philadelphia
Run Code Online (Sandbox Code Playgroud)

command-line regex grep text-processing wildcards

4
推荐指数
2
解决办法
1828
查看次数

标签 统计

command-line ×3

grep ×3

regex ×3

wildcards ×2

bash ×1

text-processing ×1