返回bash命令的标准输出的一部分(kpartx)

时间:2015-09-15 01:36:17

标签: regex string bash

我想返回图像将映射到的循环设备(使用kpartx)并将其存储在bash变量中。例如

# kpartx -av wheezy_cln.img 
add map loop0p1 (252:2): 0 131072 linear /dev/loop0 2048
add map loop0p2 (252:3): 0 7825408 linear /dev/loop0 133120

应返回/ dev / loop0并将其存储在bash变量中。

我对正则表达式不太满意。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

#捕获命令输出 a ="`kpartx -av wheezy_cln.img`" #在第一个之前修剪一切/ A =" / $ {A#* /}" #修剪下一个(第一个)空间 a =" $ {a%*}" #results现在在

答案 1 :(得分:0)

我不能真正理解你的问题(抱歉),但我会试一试......

#!/bin/bash

while read line; do

    if [ "`echo "$line" | grep "/dev/loop0"`" != "" ]; then

        var=`echo "$line" | sed 's/.*loop0 //'`

    fi

    echo "$var"

done < wheezy_cln.img

exit 0

<强>结果:

2048
133120