如何grep环境变量中的东西并且有正斜杠?

Kar*_*lek 4 grep bash

我想 grep 一个文件,我想获取所有具有特定环境变量的行(准确地说,$PWD)。

当然,只用

cat file | grep '/'$PWD'/'
Run Code Online (Sandbox Code Playgroud)

不工作,因为$PWD包含斜线。

我试图弄清楚如何正确地做到这一点,但我只提出了奇怪且过于复杂的解决方案。有什么简单的方法可以做到这一点?

cuo*_*glm 10

只需使用双引号而不是单引号,您就不必使用cat(参见UUOC):

grep -F -- "$PWD" file
Run Code Online (Sandbox Code Playgroud)

请记住,如果没有-F,$PWD将被视为正则表达式,而不是要在file.

  • @KarelBílek:将军,你没有。但是,如果您的变量包含特殊字符,则使用引号可以保护您。当您不希望出现分词时,您应该始终使用双引号。 (2认同)