【发布时间】:2014-05-14 01:08:46
【问题描述】:
我需要一些帮助来让 awk 在 perl 中工作,或者找到更好的替代方案...
此代码在 | 返回有关语法的错误使用 awk 命令解析细节时。
my @LIST = `/bin/sh $DIR/ami-show.sh Version: | awk '{print $3}'`;
确切的错误是
Use of uninitialized value $3 in concatenation (.) or string at test line 20, <STDIN> line 1.
非常感谢任何帮助
编辑:已解决!!
将 \ 添加到 '{print \$3}' 后,此命令的所有功能都可以正常工作。
【问题讨论】:
-
在 perl 中使用 awk 简直是愚蠢的,因为 perl 可以做 awk 可以做的所有事情,而且你会浪费一个进程。
-
感谢提醒大声笑...“愚蠢”是一种苛刻的表达方式,对吧!?我是 perl 的新手,并且使用的方法可能不是“最佳实践”,这就是为什么我要求可能的更好的替代方案!无论如何,我发现了问题......在打印中添加 \$3 而不是 $3 是诀窍
-
@NickHatfield 我不使用 perl,所以我不能告诉你正确的方法是什么,但那不可能。这就像努力在微波炉中生起篝火,并弄清楚你需要让门保持打开状态,这样它就不会耗尽空气。是的,这会“解决你的问题”,但是....
-
好吧,至少应该祝贺您使用
strict和warnings。 -
我的意图不是听起来很刺耳 :-) 参见例如#6 关于如何在
awk-modeblogs.oracle.com/ksplice/entry/the_top_10_tricks_of中使用perl