linux - 如何grep美元符号($)?

标签 linux unix grep

% cat temp
$$$ hello1
$$  hello2
    hello3
##  hello4
    hello5 $$$
% cat temp | grep "$$$"
Illegal variable name.
% cat temp | grep "\$\$\$"
Variable name must contain alphanumeric characters.
%

我想为 $$$ grep 并且我希望结果是

% cat temp | grep <what should go here?>
$$$ hello1
    hello5 $$$
%

为了区分,我将提示标记为%

  • 这里有什么问题?
  • grep 字符串应该是什么?

最佳答案

问题在于 shell 扩展了双引号字符串中的变量名。因此,对于 "$$$",它会尝试读取以第一个 $ 开头的变量名。

另一方面,在单引号中,变量不会被扩展。因此,'$$$' 会起作用——如果不是因为 $ 是正则表达式中表示行的特殊字符结尾。所以需要转义:'\$\$\$'.

关于linux - 如何grep美元符号($)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759926/

相关文章:

perl - 如何使用 Perl 替换 grep 来保留文件名

node.js - Node 命令仅适用于 root 权限(sudo Node )

c - 出现段错误的进程返回什么错误代码?

linux - 如何使用 grep 搜索从 1900 年到 2100 年的年份?

linux - Bash grep mac 地址 unix/linux 带分号

linux - Unix - 通过匹配前 91 个字符来获取文件 2 中不在文件 1 中的记录

regex - 匹配几乎相同的两行的 ack 或 grep 正则表达式

linux - 将文件从远程 Mac SSH 传输到学校 Linux 服务器

c++ - 使用套接字 rfcomm 的蓝牙连接

c++ - 我可以在 .pro 文件中使用 Qt 安装路径变量吗?