arrays – 存储包含数组空格的grep输出

前端之家收集整理的这篇文章主要介绍了arrays – 存储包含数组空格的grep输出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在一个数组中存储一些blkid输出行.问题是,这些行包含空格,并且数组语法将它们作为单个数组元素的分隔符,因此我最终在我的数组中使用分割线而不是一行代表一个数组元素.

这是我目前的代码
devices =($(sudo blkid | egrep’^ / dev / sd [b-z]’))

echo ${devices [*]}给出了以下输出

/dev/sdb1: LABEL="ARCH_201108" TYPE="udf"
/dev/sdc1: LABEL="WD" UUID="414ECD7B314A557F" TYPE="ntfs"

但echo ${#devices [*]}给了我7但是我想要有2.我希望/ dev / sdb1:LABEL =“ARCH_201108”TYPE =“udf”成为我的设备数组和/ dev中的第一个元素/ sdc1:LABEL =“WD”UUID =“414ECD7B314A557F”TYPE =“ntfs”是第二个.我怎么能做到这一点?

数组元素在IFS值上拆分.如果要拆分换行符,请调整IFS:
IFS_backup=$IFS
IFS=$'\n'
devices=($(sudo blkid | egrep '^/dev/sd[b-z]'))
IFS=$IFS_backup
echo ${#devices[@]}
原文链接:https://www.f2er.com/bash/384051.html

猜你在找的Bash相关文章