我有个test.xml文件,里面有一大段文字
<abcdef>
kkkk
kkk
adsf
...
...
</abcdef>
现在需要把这两个<>之间的内容替换掉。
给定两个变量 $hostnames="host1,host2,host3..."
$paragraph="many_strings" (多行文字)
找到<abcdef>与</abcdef>之间的内容删除,然后把以下内容添加进去
for hname in $hostnames
do
insert $hname
insert $paragraph
done
请教该如何实现?谢谢!~
我也给个思路吧 —— 用sed根据地址范围截取文件内容,用Here documents方法添加新的多行内容,然后重组文件。具体步骤如下:
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;
2)将要添加的内容根据变量值展开,附加写入tmp文件;
3)截取test.xml文件</abcdef>行到结束行,附加写入tmp文件。
4)移动tmp文件覆盖test.xml文件。
代码:
#!/bin/sh注意:
1) for a in b 结构中,b集合里的内容必需要空格分隔。所以我这里做了转换,用tr命令将逗号分隔改为了空格分隔。
2)第二个EOF必需顶格写,前面不能有空格。
...文件里的一段内容,可以使用sed, awk等Linux工具
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;2)将要添加的内容根据变量值展开,附加写入tmp文件;3)截取test.xml文件<\/abcdef>行到结束行,附加写入tmp文件。4)移动tmp文件覆盖test.xml文件。代码:!\/bin\/sh$hostnames="host1,host2,host3 ..."$paragraph="many_strings"sed -n...
Linux下的shell编程 如何替换文件中的内容
方法1:sed -i 's\/被替换的内容\/要替换成的内容\/' file 方法2:sed 's\/被替换的内容\/要替换成的内容\/g' file > file.out;mv file.out file。
shell如何取出特定文本内容并替换另一个文本中的指定内容???
1、按=分割取第二列 cat $file1|grep mqserver|awk -F= '{print $2}'`2、直接替换文件内容 sed -i "s\/127.0.0.1\/192.168.1.1\/" file1 3、实例:!\/bin\/sh file1=ip1.txt file2=ip2.txt IP1=`cat $file1|grep mqserver|awk -F= '{print $2}'`IP2=`cat $file2|grep...
shell脚本替换A、B两个文件里面的内容
可以使用sed进行操作,先定义一个参数读取A文件中的第一行 LineA=`sed...` 或者是使用cat把内容读取出来,再使用sed的替换方法,将B文件中的第一行替换为$LineA即可。希望有帮助
在linux下怎么使用shell脚本修改文本里的相关内容?
使用`ps`命令查找进程信息,通过`grep`过滤出所需进程,最后利用`sed`和`awk`提取进程ID。函数示例代码如下:bashfunction GetPID($username, $process_name) { ps -u $username -o pid,command | grep -v "total" | grep $process_name | awk '{print $1}'}2. 检测进程CPU利用率实时监控...
shell脚本定位某个文件中特定位置的字符串并进行替换应该怎么写?_百度...
根据位置替换即可:read ipsed -ri "\/subnet\/s\/(subnet )[^ ]+( netmask.*)\/\\1$ip\\2\/" \/mnt\/file\/subnet\/ - 先正则匹配到含有subnet的行,然后替换。替换的时候将不变的部分用小括号括起来,后面依次用\\1 , \\2 原封不动地引用回来。-r 选项用于支持扩展正则,这样就不需要额外的转义符...
...根据第二行内容,替换第一行内容 可以写成shell脚本
我也给个思路吧 —— 用sed根据地址范围截取文件内容,用Here documents方法添加新的多行内容,然后重组文件。具体步骤如下:1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;2)将要添加的内容根据变量值展开,附加写入tmp文件;3)截取test.xml文件<\/abcdef>行到结束行,附加写入tmp文件。4...
linux shell编程中文件内容修改方法
!\/usr\/bin\/ksh 这里的两个变量一个是学号,一个是数据文件 serial="S1002"dbfile="cj.db"显示行号和该行的信息 showMessage(){ sed -n "\/${serial}\/{=;p;}" ${dbfile} } 设置数学成绩 setMath(){ sed "\/${serial}\/s\/:[^:]\\{1,\\}\/:$1\/3" ${dbfile} } 设置语文成绩 set...
linux shell编程sed用法
略难。一个比较简明的方法的大概思路是:声明一个变量计空行的数目。数到1之后,开始输出(或者换入交换空间)。数到4的时候退出程序(或者把交换空间里的内容换出来输出再退出)。这样如果想改成输出其它段落的话,只需改数字即可。
linux 三剑客(grep,awk,sed)
打印)、a(追加)、s(替换)等。通过sed,可以实现文本的批量修改,如替换文件内容或删除特定行。在实际应用中,这三者常被结合使用,以实现高效的数据筛选、格式转换和文件处理。例如,grep配合awk进行用户信息筛选,sed进行文本替换和格式调整。掌握它们,能极大提升Linux下的文本处理效率。