sed 或 grep 或 awk 匹配非常长的行

sed 或 grep 或 awk 匹配非常长的行

更多文件

param1=" 1,deerfntjefnerjfntrjgntrjnvgrvgrtbvggfrjbntrrfr4fvfrfftrjgtrignmtignmtyightygjn 2,3,4,5,6,7,8,
rfcmckmfdkckemdio8u548384omxc,mor0ckofcmineucfhcbdjcnedjcnywedpeodl40fcrcmkedmrikmckffmcrffmrfrifmtrifmrifvysdfn”

需要匹配文件中 $param1 的内容但它不起作用例如 sed -n "/$param1/p" 文件
或任何 grep $param1 文件等...

还有其他解决方案吗?也许用 perl?

答案1

如果没有运行的确切脚本,很难提供帮助,但需要检查一点:

您发布的“param1”的值包含星号字符(“*”)。这些字符对 sed 和 grep(以及 perl,并且通常在任何正则表达式中)具有特殊含义。要将这些字符匹配为文字字符,通常需要通过在前面添加反斜杠来“转义”它们。

因此,您需要的是“aa*b”,而不是“aa*b”。请先尝试一下,看看是否有帮助。

警告:shell 还将处理 \,因此当将其用作参数值时,请将值放入 '' 中,如下所示:

param1='basldafsd\*asdfsadf'

'' 将保护 shell 中的特殊字符。

相关内容