在bash中将文件读入数组

在bash中将文件读入数组,bash,shell,Bash,Shell,这是我的密码 #!bin/bash IFS=$'\r\n' GLOBIGNORE='*' command eval 'array=($(<'$1'))' sorted=($(sort <<<"${array[*]}")) for ((i = -1; i <= ${array[-25]}; i--)); do echo "${array[i]}" | awk -F "/| " '{print $2}' done 在Linux中,您只需执行 sort -nbr fi

这是我的密码

#!bin/bash
IFS=$'\r\n'
GLOBIGNORE='*'
command eval
'array=($(<'$1'))'

sorted=($(sort <<<"${array[*]}"))
for ((i = -1; i <= ${array[-25]}; i--)); do
echo "${array[i]}" | awk -F "/| " '{print $2}'
done

在Linux中,您只需执行

sort -nbr file_to_sort  | head -n 25 | awk '{print $2}'

在Linux中,您只需执行

sort -nbr file_to_sort  | head -n 25 | awk '{print $2}'
将文件作为命令行参数读入,对元素进行排序,然后 打印出最后25行的第2列

根据对问题的描述,我建议:

#! /bin/sh
sort -bn $1 | tail -25 | awk  '{print $2}'
通常,使用shell对文件名进行操作,而不要使用 shell对数据进行操作。像排序awk这样的实用程序远远不够 在处理数据时,比shell更快、更强大 文件

将文件作为命令行参数读入,对元素进行排序,然后 打印出最后25行的第2列

根据对问题的描述,我建议:

#! /bin/sh
sort -bn $1 | tail -25 | awk  '{print $2}'
通常,使用shell对文件名进行操作,而不要使用 shell对数据进行操作。像排序awk这样的实用程序远远不够 在处理数据时,比shell更快、更强大
文件。

我是否可以使用$1作为“文件到排序”,因为我必须作为命令行参数读入?例如:./script.sh file_to_sort
sort-nbr“$1”| awk'NR==26{exit}{print$2}”
我是否能够使用$1作为“file_to_sort”,因为我必须作为命令行参数读入?例如:./script.sh文件_to_sort
sort-nbr“$1”| awk'NR==26{exit}{print$2}'
命令eval
?为什么?使用
readarray-t array可以获得更好的行为…类似地,
readarray-t sorted<…来解释自反的“为什么?”,顺便说一下,请参见,描述为什么“eval”通常被视为“邪恶”的同义词;使用不当很容易导致安全性故障,因此通常最好直接避免。
command eval
?为什么?使用
readarray-t array可以获得更好的行为…类似地,
readarray-t sorted<…来解释自反的“为什么?”,顺便说一下,请参见,描述为什么“eval”通常被视为“邪恶”的同义词;如果使用不当,很容易导致安全性故障,因此通常最好直接避免。