【发布时间】:2017-02-24 12:01:46
【问题描述】:
下面的 awk 命令(从 stackoverflow 复制和粘贴)在命令行中可以正常工作,但在别名时不打印任何内容
awk '/WORD/ {print $3}' log.log | awk 'BEGIN{c=0} length($0){a[c]=$0;c++}END{p5=(c/100*5); p5=p5%1?int(p5)+1:p5; print a[c-p5-1]}'
alias getperc="awk '/WORD/ {print \$3}' log.log | awk 'BEGIN{c=0} length(\$0){a[c]=$0;c++}END{p5=(c/100*5); p5=p5%1?int(p5)+1:p5; print a[c-p5-1]}'"
我对使用 bash 还是很陌生。我在这里错过了什么?
【问题讨论】:
-
显示别名的正确定义,即
alias myAlias="...."。 \ 无论如何,别名是一个非常有限的工具。研究如何将 awk 脚本安装为函数。祝你好运。 -
awk通过管道传递到awk通常表示有问题;你应该只有一个awk,可能。使用别名意味着您无法更改扫描的文件名,因此别名不是很灵活——如果您真的要经常使用它以提高速度,您最好使用脚本(或函数)很重要,但在我看来,这种情况极不可能发生)。 -
双引号中的
$反斜杠。