我无法在Linux实验室中运行简单的正则表达式命令。因为我不了解问题的根源,所以我只能提供命令行示例。以下两个示例有效:
% fgrep -h TestVar */config_file.txt
% sed -n /TestVar/p */config_file.txt
但是以下两个例子不起作用:
% awk '/TestVar/ { print }' */config_file.txt
% perl -ne 'if (/TestVar/) { print }' */config_file.txt
两个错误都表示在错误的地方反斜杠。具体来说,非常简单的AWK命令输出以下内容:
awk: ^ backslash not last character on line
如果我进一步简化AWK命令,它将按如下方式工作:
% awk /TestVar/ */config_file.txt
如果我暂时将登录shell从TCSH(默认)切换到BASH,则所有命令都有效。最后,如果我在单个文件上运行AWK或PERL命令,则REGEX命令也可以在原始TCSH shell中运行。
简单的示例脚本是我在日常操作中永远不会使用的。我通常使用更复杂的REGEX命令解析或编辑多个文件。问题是我无法使用实验室默认的TCSH shell在AWK或PERL中使用我的日常REGEX命令的任何变化。我的REGEX命令适用于所有其他实验室,它们也使用TCSH。因此,必须有一些特定于此实验室环境的问题导致问题。
非常感谢任何帮助!