awk:失控的正则表达式

awk:失控的正则表达式

我可以在 ubuntu 上运行命令:

free | grep Mem | awk '{print $3/$2 * 100.0}'

并得到结果:

20.1092

但是当我尝试将其放在别名中时:

alias memTotal="free | grep Mem | awk '{print $3/$2 * 100.0}'"

它不起作用:

$ memTotal
awk: line 1: runaway regular expression / * 100.0} ...

答案1

尝试

alias memTotal='free | grep Mem | awk '\''{print $3/$2 * 100.0}'\'

分解一下引文,这就是

'free | grep Mem | awk '

接下来是转义的单引号\',然后是引用的 awk 表达式'{print $3/$2 * 100.0}',最后是转义的文字结束引号\'

相关内容