Numfmt --to=none 在函数内

问题描述 投票:0回答:1

我想使用 sed 在 csv 中以非人类可读格式创建一个新的数字列。为此,我将创建一个函数,然后通过

sed 's/(.*)/foo \1/e
将其应用到 sed 中。现在,我直接在文件上测试了
cat $file | cut -f1 -d" " | numfmt --from=iec --to=none
,它返回的正是我正在寻找的内容。当我尝试将其放入函数中时:

foo(){cat $1 | cut -f1 -d" " | numfmt --from=iec --to=none}

numfmt 非常不高兴,并坚持认为

none}
是无效格式;当我在“none”和大括号之间添加一个空格时,numfmt 会耐心等待输入,而不是关闭函数定义。

我在这里缺少什么?

bash command-line command-line-interface gnu
1个回答
0
投票

您需要在

{
之后有一个空格,在
;
之前需要一个
}

foo(){ cat $1 | cut -f1 -d" " | numfmt --from=iec --to=none; }

再清理一下:

foo(){ cut -f1 -d" " < "$1" | numfmt --from=iec --to=none; }

或:

foo(){ numfmt --from=iec --to=none < <(cut -f1 -d" " < "$1"); }
© www.soinside.com 2019 - 2024. All rights reserved.