首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据另一个命令的输出替换命令的部分输出

根据另一个命令的输出替换命令的部分输出
EN

Stack Overflow用户
提问于 2015-03-05 14:51:06
回答 1查看 49关注 0票数 1

我有两个命令在我的linux系统上输出设备:

代码语言:javascript
复制
$ devlist -t csv -o device,vol_name
device,vol name,
/dev/mapper/mpath62,volume1,
/dev/mapper/mpath63,my_volume,
/dev/mapper/mpath64,foo,
/dev/mapper/mpath65,bar,
/dev/mapper/mpath66,2nd_vol,
$ multipathd -k'show maps'
name     sysfs uuid             
mpath62  dm-0  20017380029ab0043
mpath65  dm-1  20017380029ab0044
mpath66  dm-2  20017380029ab0045
mpath63  dm-3  20017380029ab0046
mpath64  dm-4  20017380029ab0047

如何将输出合并到打印(最好是w/o创建临时文件):

代码语言:javascript
复制
device,vol name,
/dev/dm-0,volume1,
/dev/dm-3,my_volume,
/dev/dm-4,foo,
/dev/dm-1,bar,
/dev/dm-2,2nd_vol,

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-05 14:59:50

您可以将awkprocess substitution结合使用

代码语言:javascript
复制
awk -F '[/, ]+' 'FNR==NR{a[$1]=$2; next}
   FNR==1{print;next}
   $4 in a{printf "/%s/%s,%s,\n", $2, a[$4], $(NF-1)}
' <(multipathd -k'show maps') <(devlist -t csv -o device)
device,vol name,
/dev/dm-0,volume1,
/dev/dm-3,my_volume,
/dev/dm-4,foo,
/dev/dm-1,bar,
/dev/dm-2,2nd_vol,
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28880710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档