使用shell脚本替换与更新文件里的一段内容,可以使用sed, awk等Linux工具

如题所述

使用sed和Here documents方法替换文件内容的思路如下:

1. 截取test.xml文件从起始行到特定行,保存到临时文件tmp。

2. 根据变量值扩展要添加的内容,附加写入tmp文件。

3. 从test.xml文件截取从特定行到结束行,附加写入tmp文件。

4. 将tmp文件移动并覆盖test.xml文件。

示例代码:

#!/bin/sh

$hostnames="host1,host2,host3..."

$paragraph="many_strings"

sed-n'1,/^/p'test.xml>tmp

cat<>tmp

forhnamein`echo"$hostnames"|tr','''`

do

insert$hname

insert$paragraph

done

EOF

sed-n'/^<\/abcdef>/,$p'test.xml>>tmp

mvtmp/test.xml

注意:

1) for a in b 结构中,b集合里的内容必需空格分隔。因此,这里使用tr命令将逗号分隔改为空格分隔。

2) 第二个EOF必需顶格写,前面不能有空格。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜