Bash 将cat命令的输出拆分为单独的行

Bash 将cat命令的输出拆分为单独的行,bash,split,cat,Bash,Split,Cat,我很难将cat命令(cat/proc/meminfo)的输出拆分为单独的行来处理它们 #!/bin/bash CURR_DUMP=$(cat /proc/meminfo) arrIN=(${CURR_DUMP// kB/}) for t in "${arrIN[@]}" do echo $t done exit 0 但不是单独的行,而是每行的一部分。 我的解决方案出了什么问题 提前感谢。您可以使用mapfile: mapfile -t arr < <(sed 's/ kB$//

我很难将cat命令(
cat/proc/meminfo
)的输出拆分为单独的行来处理它们

#!/bin/bash
CURR_DUMP=$(cat /proc/meminfo)
arrIN=(${CURR_DUMP// kB/})

for t in "${arrIN[@]}"
do
echo $t
done

exit 0
但不是单独的行,而是每行的一部分。 我的解决方案出了什么问题


提前感谢。

您可以使用
mapfile

mapfile -t arr < <(sed 's/ kB$//' /proc/meminfo)

mapfile-t arr<您计划实现什么?我想使用循环过滤一些有趣的行(或者仅通过数组中的索引使用一些行),并因此构建内存使用情况的自定义输出。您的问题仍然不是很清楚。但我确信下面提到的
mapfile
解决方案是实现这一点的建议方法。但是值得研究一下CURR\u DUMP=$(cat/proc/meminfo)
会发生什么。它实际上会给您一个要处理的字符串,如果您希望剥离
kB
s结尾的
arrIN=(${CURR\u DUMP//kB/})
将不会执行您想要的操作:)祝你好运,非常感谢你的回答!