[英]Bash script - how to insert value of variable as new line, 2 line after matching a pattern in text file
我想将变量的值添加为新行,匹配模式后添加2行。 以下是示例。
以下是将变量值添加为新行之前的行的内容,匹配模式“ FILTER datalist”之后的2行
FILTER datalist
{
"DEBAU00_NFS_fmabackup_BBTFLRBAU01"
}
FILTER copylist
{
}
如果变量的值是Laptop,则下面是期望的结果。
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="Laptop\n\n" #bash variable
$ sed -E "/FILTER datalist/{:l1;/^}$/! {n;bl1};s/(^.*$)/$variable\1/}" casefile48486676
输出量
FILTER datalist
{
"DEBAU00_NFS_fmabackup_BBTFLRBAU01"
Laptop
}
FILTER copylist
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.