Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在shell脚本中使用asorti函数_Shell_Awk_Sh - Fatal编程技术网

在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脚本手册 假设您只想显

我不知道如何在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脚本手册

假设您只想显示排序的数组,请使用
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