【问题标题】:For a given and unique string how to find all corresponding strings对于给定且唯一的字符串,如何找到所有对应的字符串
【发布时间】:2014-11-29 14:24:56
【问题描述】:
# cat lun.txt
/dev/sdb 60002ac00000000000000f0f0000799d
/dev/sdc 60002ac00000000000000fdb0000799d
/dev/sdd 60002ac00000000000000f0f0000799d
/dev/sde 60002ac00000000000000fdb0000799d
#

如何列出给定 WWID 的所有设备,如下所示:

60002ac00000000000000f0f0000799d 
    /dev/sdb
    /dev/sdd
60002ac00000000000000fdb0000799d
    /dev/sdc
    /dev/sde

我尝试过使用 sort、uniq 和 awk。但没有运气

【问题讨论】:

  • 请展示你的尝试。

标签: bash sorting awk uniq


【解决方案1】:

怎么样

$ awk '{ device[$2]=device[$2]"\n"$1 } END{ for(i in device) print i,device[i] }' lun.txt
60002ac00000000000000fdb0000799d 
/dev/sdc
/dev/sde
60002ac00000000000000f0f0000799d 
/dev/sdb
/dev/sdd
  • device[$2]=device[$2]"\n"$1 创建由 wwid 索引的数组 device$2 附加 $1,第一列包含数组元素

  • for(i in device) print i,device[i] 打印数组的内容

【讨论】:

    【解决方案2】:

    我刚刚添加了一个 tab(\t) 来获得所需的输出。

    awk '{ device[$2]=device[$2]"\n\t"$1 } END{ for(i in device) print i,device[i] }' lun.txt
    60002ac00000000000000fdb0000799d
            /dev/sdc
            /dev/sde
    60002ac00000000000000f0f0000799d
            /dev/sdb
            /dev/sdd
    

    【讨论】:

      猜你喜欢
      • 2011-02-03
      • 2014-07-09
      • 2011-01-28
      • 2017-05-26
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多