我正在尝试为我正在编写的脚本在linux上解析多路径输出,但我无法完全找到正确的SED或AWK语法来获取所需的语法。我一直在浏览各种站点和stackoverflow示例,但运气不佳。

我想找到一种制作方法:

temp (360a98000572d4d2d5834566c64536b46) dm-4 NETAPP,LUN
[size=20G]
2:0:0:4  sde        8:64  [active][ready]
1:0:0:4  sdm        8:192 [active][ready]
redo (360a98000572d4d2d5834566c646c366c) dm-3 NETAPP,LUN
[size=5.0G]
2:0:0:3  sdd        8:48  [active][ready]
1:0:0:3  sdl        8:176 [active][ready]

看起来像:
temp (360a98000572d4d2d5834566c64536b46) dm-4 NETAPP,LUN [size=20G] 2:0:0:4  sde        8:64  active][ready]
temp (360a98000572d4d2d5834566c64536b46) dm-4 NETAPP,LUN [size=20G] 1:0:0:4  sdm        8:192 [active][ready]
redo (360a98000572d4d2d5834566c646c366c) dm-3 NETAPP,LUN [size=5.0G] 2:0:0:3  sdd        8:48  [active][ready]
redo (360a98000572d4d2d5834566c646c366c) dm-3 NETAPP,LUN [size=5.0G] 1:0:0:3  sdl        8:176 [active][ready]

** 编辑
好的,因此,这变得更加困难了,我发现没有Netapp的默认设置的多路径配置。这样可以确保NETAPP,LUN不被保证处于联机状态。我开始做的是:
/sbin/multipath -ll | grep -v "round-robin"| sed 's/\[feat.*//g' | sed ':a; $!N;s/\n\([^\n]*\[size\)/ \1/;ta;P;D'

这将大小放在主行上,以提供其他匹配的内容:
360a98000572d4d2d5834664e68323436 dm-6 NETAPP,LUN [size=50G]
\_ 1:0:0:0  sda 8:0   [active][ready]
360a98000572d4d2d5834664e68395951 dm-7 NETAPP,LUN [size=275G]
\_ 1:0:0:7  sdb 8:16  [active][ready]

但是,我无法获得以下任何示例来匹配“G [$”(我知道如果有terrabyte卷,我将需要为T添加另一行),并提供正确的输出。

感谢大家在下面的建议
**结束编辑

我知道如何清理间距,因此我将在正确获得输出之后执行此操作。将开始多路径信息的行均以“LUN”结尾。服务器在每个LUN线(sdx设备)下可以有1到8条路径。 “()”之前的部分可以是文本(别名)或数字。

最佳答案

单程:
script.awk的内容:

$1 ~ /^([[:digit:]]:){3}[[:digit:]]$/ {
    printf "%s %s\n", line, $0;
    next;
}

##$1 ~ /temp|redo/ {
$0 ~ /LUN$/ {
    getline l;
    line = $0 " " l;
}

假设infile包含问题的内容,请运行脚本,如下所示:
awk -f script.awk infile

具有以下输出:
temp (360a98000572d4d2d5834566c64536b46) dm-4 NETAPP,LUN [size=20G] 2:0:0:4  sde        8:64  [active][ready]
temp (360a98000572d4d2d5834566c64536b46) dm-4 NETAPP,LUN [size=20G] 1:0:0:4  sdm        8:192 [active][ready]
redo (360a98000572d4d2d5834566c646c366c) dm-3 NETAPP,LUN [size=5.0G] 2:0:0:3  sdd        8:48  [active][ready]
redo (360a98000572d4d2d5834566c646c366c) dm-3 NETAPP,LUN [size=5.0G] 1:0:0:3  sdl        8:176 [active][ready]

10-07 19:38
查看更多