Shell 在空行之间拆分数据

Shell 在空行之间拆分数据,shell,Shell,大家好,我需要将此字符串复制到文件: dell1-node4.lvs.local =================================== dell1-node1.lvs.local Device: t10.ATA_____DENCSTE251M252D0115______________________A09AY011202000268000000 VSANUUID: 5229819d-8308-e6a3-fea1-0716a6432ecd SSD: True Capacity

大家好,我需要将此字符串复制到文件:
dell1-node4.lvs.local

===================================
dell1-node1.lvs.local

Device: t10.ATA_____DENCSTE251M252D0115______________________A09AY011202000268000000
VSANUUID: 5229819d-8308-e6a3-fea1-0716a6432ecd
SSD: True
Capacity: 79830188032
CapacityUsed: 0
DiskHealh: OK

Device: t10.ATA_____ST1000VX0012D1HH162__________________________________S513WZVV
VSANUUID: 526b1573-6e2e-111e-9748-a67d18a0093f
SSD: False
Capacity: 990191288320
CapacityUsed: 526032830464
DiskHealh: OK

===================================
dell1-node4.lvs.local

Device: t10.ATA_____ST2000VX0032D1HH164__________________________________W7208JYX
VSANUUID: 52219120-9951-3037-a871-11571eccf50e
SSD: False
Capacity: 1980382576640
CapacityUsed: 1337030868992
DiskHealh: OK

Device: t10.ATA_____DENCSTE251M252D0115______________________A09AY011210000027000000
VSANUUID: 52252706-4dcb-c73c-19f5-67719c29d0f6
SSD: True
Capacity: 79830188032
CapacityUsed: 0
DiskHealh: OK

===================================
dell1-node3.lvs.local

Device: naa.5000c5008c23ab53
VSANUUID: 5213b511-11b8-5f64-cb03-5a2d6ad258fa
SSD: False
Capacity: 990191288320
CapacityUsed: 682308403200
DiskHealh: OK

Device: naa.5000c5008c23ac7a
VSANUUID: 5236dc9a-b087-c2d8-2d24-2433218f3352
SSD: False
Capacity: 990191288320
CapacityUsed: 652595953664
DiskHealh: OK

Device: naa.5e83a97010008946
VSANUUID: 52f99ae4-970c-7369-de9d-7b93f0d9b5df
SSD: True
Capacity: 79830188032
CapacityUsed: 0
DiskHealh: OK
然后继续将此字符串复制到另一个文件:

Device: t10.ATA_____ST2000VX0032D1HH164__________________________________W7208JYX
VSANUUID: 52219120-9951-3037-a871-11571eccf50e
SSD: False
Capacity: 1980382576640
CapacityUsed: 1337030868992
DiskHealh: OK

Device: t10.ATA_____DENCSTE251M252D0115______________________A09AY011210000027000000
VSANUUID: 52252706-4dcb-c73c-19f5-67719c29d0f6
SSD: True
Capacity: 79830188032
CapacityUsed: 0
DiskHealh: OK

如果希望将“==”之间的所有内容存储在给定的文件中,这将起作用。我也在我的系统上进行了测试。祝你好运

t10.ATA_____DENCSTE251M252D0115______________________A09AY011210000027000000
VSANUUID: 52252706-4dcb-c73c-19f5-67719c29d0f6
SSD: True
Capacity: 79830188032
CapacityUsed: 0
DiskHealh: OK
awk'/dell/{flag=1;next}/=/{flag=0}flag'>dell1-node4.lvs.local
  • /dell/
    匹配包含此文本的行,以及
    /=/
    匹配包含此文本的行

  • /dell/{flag=1;next}
    在找到文本
    dell
    时设置标志。 然后,它跳过了这条线

  • /=/{flag=0}
    在找到文本
    =
    时取消设置标志

  • 最后一个标志是带有默认操作的模式,即 打印
    $0:
    如果标志等于1,则打印该行


请你说清楚一点好吗?是的,我需要在“=================================================”@AshishK不太清楚,你应该注意@C0dekid我没听懂你的话。事实上,我只是在从trungtien确认只有“===”之间的行必须被提取到所提到的文件之后,才考虑编辑这个问题
awk '/dell/{flag=1;next}/=/{flag=0}flag' <filename> > dell1-node4.lvs.local