加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 01:25:15 所属栏目:安全 来源:网络整理
导读:我想在一个数组中存储一些blkid输出行.问题是,这些行包含空格,并且数组语法将它们作为单个数组元素的分隔符,因此我最终在我的数组中使用分割线而不是一行代表一个数组元素. 这是我目前的代码: devices =($(sudo blkid | egrep’^ / dev / sd [b-z]’)) echo
我想在一个数组中存储一些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[@]}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读