gpt4 book ai didi

linux - 带有双星的 awk 语法错误 **

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:13 28 4
gpt4 key购买 nike

我正在使用 Debian 6 和 GNU sed,试图让 awk 将 du 的输出从一长串字节转换为更易于阅读的数字,并带有 Mb 和 Kb 等后缀。 (我知道您可以使用 -h 选项,但我想用 awk 手动执行此操作。)

到目前为止,我的命令看起来像这样(我放入换行符以使其更具可读性):

du /test.img | grep [0-9]* | awk "{ sum=$1 ; hum[1024**3]='Gb';hum[1024**2]='Mb';
hum[1024]='Kb'; for (x=1024**3; x>=1024; x/=1024){ if (sum>=x)
{ printf '%.2f %s\n',sum/x,hum[x];break } }}"

但是,我从双星/双星附近得到语法错误:

awk: line 1: syntax error at or near *
awk: line 1: syntax error at or near *
awk: line 1: syntax error at or near *
awk: line 1: extra ')'
awk: line 1: syntax error at or near {

如果我将所有双星 ** 设为一颗星 *,awk 运行,但我得到一个不正确的数字。

我能做些什么来修复这些语法错误并不再被 awk 迷惑? ba dum tshh

最佳答案

只是为了使其成为“官方”(作为答案)...

您正在使用 ** 求幂。在 awk 中,^ 运算符用于求幂。我想互联网上有很多引用资料,但我找到的是 here .

关于linux - 带有双星的 awk 语法错误 **,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913368/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com