arrays – 存储包含数组空格的grep输出
发布时间:2020-12-16 01:25:15 所属栏目:安全 来源:网络整理
导读:我想在一个数组中存储一些blkid输出行.问题是,这些行包含空格,并且数组语法将它们作为单个数组元素的分隔符,因此我最终在我的数组中使用分割线而不是一行代表一个数组元素. 这是我目前的代码: devices =($(sudo blkid | egrep’^ / dev / sd [b-z]’)) echo
我想在一个数组中存储一些blkid输出行.问题是,这些行包含空格,并且数组语法将它们作为单个数组元素的分隔符,因此我最终在我的数组中使用分割线而不是一行代表一个数组元素.
这是我目前的代码: 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[@]} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |