给出一个文件,以便每一行中可以有多个单词,并且在任何单词与其他单词之间都存在一个空格,例如:
a a a a
b b b b
c c
d d
a a a a
如何创建数组,以使单元格编号i
中的行号为i
,但在数组中的元素之间没有重复!
根据上面的文件,我们将需要创建以下数组:
Array[0]="a a a a"
,Array[1]="b b b b"
,Array[2]="c c"
,Array[3]=d d
。
(文件名作为参数传递给脚本)。
我知道如何创建包含所有行的数组。像这样:
Array=()
while read line; do
Array=("${Array[@]}" "${line}")
done < $1
但是如何将文件的排序(和uniq)输出传递给while read..
?
答案 0 :(得分:1)
您应该可以使用done < <(sort "$1" | uniq)
代替done < $1
。
<()
语法从子外壳创建一个类似文件的对象,以执行单独的命令集。