将cat命令的输出转换为数组

时间:2018-05-22 15:19:20

标签: arrays bash

如何使用cat命令将文件名添加到数组中?

我一直在尝试:

array=()
while IFS= read -r -d $'\0'; do
  array+=("$REPLY")
done < <(cat /proc/swaps | grep "swap")

这可以将输出中的所有信息都抓取到数组中,或者只是不起作用。如何使用cat命令成功地将[/swapfile, /dev/hda1, /some/other/swap]的预期输出转换为数组形式?

2 个答案:

答案 0 :(得分:1)

readarray array < <(awk '/swap/{print $1}' /proc/swaps)

答案 1 :(得分:0)

Bash在版本4中引入了readarray,它可以取代while读取循环。 readarray是您想要的解决方案。

这是语法

readarray variable < inputfile
echo "${variable[0]}" ' to print the first element in array