gpt4 book ai didi

sed 或 perl + 在两行之间插入文本

转载 作者:行者123 更新时间:2023-12-01 09:09:54 24 4
gpt4 key购买 nike

我有以下文件:(example.txt 显示)

我需要编辑文件,主要问题是在文件中的两个已知行之间附加文本

first_line=")"

second_line="网卡 Hr_Nic ("

例如

需要添加以下内容:

    haattr -add RVG StorageRVG -string
haattr -add RVG StorageDG -string
haattr -add RVG StorageHostIds -string
haattr -delete RVG Primary
haattr -delete RVG SRL
haattr -delete RVG RLinks

之间

第一个匹配行")"

第二个匹配行“NIC Hr_Nic(”

如 example.txt 文件中所述

如何通过 sed 做到这一点...(如果 sed 很难,那么 perl 也可以)

备注(sed需要得到两个参数 第一个参数是第一个匹配行(first_line arg) 第二个参数是第二个匹配行(second_line arg)

example.txt 文件:

    group Hr_Grp (
SystemList = { london1 = 0, london2 = 1 }
AutoStartList = { london1, london2 }
)

NIC Hr_Nic (
Device = qfe0
)

IP Hr_Ip(
Device = qfe0
Address = "1.1.1.1" // Virtual IP
)

DiskGroup Hr_Dg(
DiskGroup = hrdg
)

RVG Hr_Rvg (
RVG = hr_rvg
DiskGroup = hrdg
)

Hr_Rvg requires Hr_Dg
Hr_Rvg requires Hr_Ip
Hr_Ip requires Hr_Nic

sed 编辑后的文件示例:

    group Hr_Grp (
SystemList = { london1 = 0, london2 = 1 }
AutoStartList = { london1, london2 }
)


haattr -add RVG StorageRVG -string
haattr -add RVG StorageDG -string
haattr -add RVG StorageHostIds -string
haattr -delete RVG Primary
haattr -delete RVG SRL
haattr -delete RVG RLinks



NIC Hr_Nic (
Device = qfe0
)

IP Hr_Ip(
Device = qfe0
Address = "1.1.1.1" // Virtual IP
)

DiskGroup Hr_Dg(
DiskGroup = hrdg
)

RVG Hr_Rvg (
RVG = hr_rvg
DiskGroup = hrdg
)

Hr_Rvg requires Hr_Dg
Hr_Rvg requires Hr_Ip
Hr_Ip requires Hr_Nic

最佳答案

试一试:

text=$(<file)
sed -e '/[[:blank:]]*)[[:blank:]]*/{:a;n;/NIC Hr_Nic (/i\' -e "$text" -e 'ba}'

我正在使用 i 进行插入和使用变量,因为 r(读取文件)命令会在当前行之后追加。您还可以像这样设置变量:

read -d '' -r text<<EOF
haattr -add RVG StorageRVG -string
haattr -add RVG StorageDG -string
etc.
EOF

text="haattr -add RVG StorageRVG -string
haattr -add RVG StorageDG -string
etc."

关于sed 或 perl + 在两行之间插入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3458194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com