Bash 脚本 - 如何在匹配文本文件中的模式后插入变量的值作为换行符,2 行



我想添加变量的值作为新行,匹配模式后 2 行。下面是示例。

下面是将变量值添加为新行之前的行内容,匹配模式"FILTER 数据列表"后的 2 行

FILTER datalist
{
"DEBAU00_NFS_fmabackup_BBTFLRBAU01"
}
FILTER copylist
{
}

下面是期望的结果,如果变量的值是笔记本电脑。

FILTER datalist
{
"DEBAU00_NFS_fmabackup_BBTFLRBAU01"
Laptop
}

我在下面尝试过。

sed '/^FILTER datalist/{N;N;s/$/Laptop/}' file_name

sed与分支一起使用以实现您的目标。

$ cat casefile48486676
FILTER datalist
{
"DEBAU00_NFS_fmabackup_BBTFLRBAU01"
}
FILTER copylist
{
}
$ variable="Laptopnn" #bash variable
$ sed -E "/FILTER datalist/{:l1;/^}$/! {n;bl1};s/(^.*$)/$variable1/}" casefile48486676

输出

FILTER datalist
{
"DEBAU00_NFS_fmabackup_BBTFLRBAU01"
Laptop
}
FILTER copylist
{
}

最新更新