在shell脚本中使用asorti函数
我不知道如何在shell脚本语言中使用asorti函数,我尝试了以下命令:在shell脚本中使用asorti函数,shell,awk,sh,Shell,Awk,Sh,我不知道如何在shell脚本语言中使用asorti函数,我尝试了以下命令: n= gawk `asorti($array)` n= awk `asorti(array)` n= gawk `asorti($array)` 但是没有一个是工作 asorti()是(g)awk的函数,而不是shell的函数 也许你想: n=`awk '{...asorti(array)...print....}' input` then use $n 请阅读awk手册页 请阅读一些shell脚本手册 假设您只想显
n= gawk `asorti($array)`
n= awk `asorti(array)`
n= gawk `asorti($array)`
但是没有一个是工作 asorti()
是(g)awk的函数,而不是shell的函数
也许你想:
n=`awk '{...asorti(array)...print....}' input`
then use $n
请阅读awk手册页
请阅读一些shell脚本手册 假设您只想显示排序的数组,请使用
sort
:给定
declare -A arr=( [foo]=bar [baz]=qux )
按数组索引排序
for idx in "${!arr[@]}"; do echo "$idx:${arr[$idx]}"; done | sort -t: -k1,1
按数组值排序
for idx in "${!arr[@]}"; do echo "$idx:${arr[$idx]}"; done | sort -t: -k2
是的,我想问这个问题,我会删除它@ElliottFrisch这是因为
asorti
用于排序awk数组,而不是bash数组。你不能只是从其他语言中挑选一些很酷的函数,然后把它们放到你的shell脚本中。向我们展示您的代码,并告诉我们您试图实现什么。@glennjackman,shell中有类似的功能吗?正如我在回答中所写的,您可能需要阅读一些有关shell脚本编程或awk编程的手册。除了混淆asorti()之外,脚本中还有很多错误。=
后面的空格、awk/gawk作为文字字符串、反勾号的错误用法、awk表达式、引号缺失。。。,我几乎找不到代码中正确的部分。所以开始阅读吧。
for idx in "${!arr[@]}"; do echo "$idx:${arr[$idx]}"; done | sort -t: -k2
foo:bar
baz:qux