Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在bash中用多个xml文件的SED替换PATH元素

在bash中用多个xml文件的SED替换PATH元素
EN

Unix & Linux用户
提问于 2020-09-18 05:38:07
回答 2查看 401关注 0票数 0

我已经成功地替换了1个xml文件。但是,从test1.xmltest30.xml,我有10条路径,它们在最后有不同的路径:

  • test1.xml . <样例路径=‘/test/test 123/st1.txt’> .
  • test2.xml . <样例路径=‘/test/test 123/te2.txt’> .

等到

  • test30.xml . <样例路径=‘/test/test 123/ .

输出应该如下所示:

代码语言:javascript
代码运行次数:0
运行
复制

..。

<示例路径=‘/test/test 123/’>

..。

代码语言:javascript
代码运行次数:0
运行
复制

以前,我使用过这个,它可以更改一个文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i "s#<example path='/test/test123/st1.txt'/>#<example path=/test/test123/>#" test1.xml

但是,我想一次更改多个文件,并执行以下脚本,但在cat上xml文件没有显示更改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i "s#<example path='/test/test123/*.txt'/>#<example path='/test/test123/'>#" *.xml

任何帮助都将不胜感激。耽误您时间,实在对不起!

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-09-18 05:45:13

造成此问题的原因是您使用了"shell glob“(即”通配符“)模式,其中需要正则表达式模式。

/test/test123/*.txt部分实际上的意思是"/test/test123,后面是零或多个/字符,后面是任何单个字符,后面是txt“。

这种模式不是您想要的,也不是您的文件中的任何地方。

相反,您需要的是/test/test123/[^.]*\.txt,意思是"/test/test123/,后面跟着许多不是.的字符(请参阅“贪心正则表达式”说明为什么这是必要的),后面跟着文字.,后面跟着txt“。

然后,完整的命令看起来就像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i "s#<example path='/test/test123/[^.]*\.txt'/>#<example path='/test/test123/'>#" *.xml

Note

如果您的文件名除了.扩展之外还可以包含.txt,那么上面的文件名将不能正常工作。在这种情况下,使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i "s#<example path='/test/test123/.*\.txt'/>#<example path='/test/test123/'>#" *.xml

意思是"/test/test123/,后面跟着任何类型的零或多个字符,后面跟着文字.,后面跟着txt“。这将正确工作,除非.txt模式可以在稍后的行中再次出现(对于您的输入不应该是这样)。

票数 2
EN

Unix & Linux用户

发布于 2020-09-18 06:06:42

sed -i "s#<example path='/test/test123/.*\.txt'/>#<example path='/test/test123/'>#" *.xml

这解决了我的问题。干杯!:)

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/610057

复制
相关文章
sed.exe & bat来替换xml标签的内容
解释:替换目标<args>XXX</args>的内容 替换结果是运行bat输入的第一个参数
收心
2022/01/19
1.2K0
sed.exe & bat来替换xml标签的内容
bash找不到命令_bash sed
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/29
1.8K0
sed直接替换文件内容 原
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。
拓荒者
2019/03/11
3.9K0
批处理读取xml并替换某个标签内容 需要sed工具
下面代码含义是 替换<args> </args> 标签里面的内容,替换内容为 批处理命令启动时的参数 <args> %1 … %8 </args>
收心
2022/01/19
1.4K0
批处理读取xml并替换某个标签内容 需要sed工具
Linux对文件中的特殊字符进行替换(单个文件与多个文件替换)
https://stackoverflow.com/questions/5800035/how-to-replace-nul-in-vi
小徐
2019/08/05
6.2K0
Linux对文件中的特殊字符进行替换(单个文件与多个文件替换)
sqlserver - FOR XML PATH
本文介绍了如何使用FOR XML PATH来查询数据库中的数据,并通过自定义列名和列的别名,以及使用XML的格式对查询结果进行格式化。同时,文章还介绍了一个具体的应用场景,并给出了相应的SQL代码。
用户1141560
2017/12/26
1.6K0
sqlserver - FOR XML PATH
如何使用 sed 替换文件中的字符串?
在 Linux 系统中,sed 是一个非常有用的文本处理工具,它可以用于在文件中进行字符串替换操作。sed 是流编辑器(stream editor)的缩写,它可以对文本进行逐行处理,包括查找和替换特定的字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符串替换操作。
网络技术联盟站
2023/06/09
5.5K0
如何使用 sed 替换文件中的字符串?
可替换元素和非替换元素
可替换元素replaced element也称作可置换元素,其展现效果不是由CSS来控制的,这些元素是一种外部对象,它们外观的渲染,是独立于CSS的。非置换元素non-replaced element也称作非替换元素,其内容由CSS渲染直接表现给客户端。
WindRunnerMax
2020/08/27
2K0
SQL中的for xml path
最近出的每日一题里面,有一道是关于合并同类型数据为一行的题,使用SQL Server 2017版本及以上的直接使用STRING_AGG()函数即可,但是2016版本以下是没有这个功能的,那该如何求解?
SQL数据库开发
2024/04/24
1190
SQL中的for xml path
linux 使用sed替换文本
背景:在linux 服务器上,有时我们想通过命令行的方式替换掉文件中的某个字符串,可以使用sed命令。具体的命令详情可参考:http://www.runoob.com/linux/linux-comm-sed.html
小白will
2019/01/28
5.9K0
vim打开多个文件、同时显示多个文件、在文件之间切换 打开多个文件:
1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开一个文件,并且此时vim里会显示出file文件的内容。
sunsky
2020/08/19
15.4K0
实际工作中用到的shell命令 - sed
目前跑的接口自动化是通过Testng + Jenkins来做的, 但是项目可能跑在不同的平台上, 不同的平台有不同的ip.
我是胖虎啊
2022/06/27
3090
实际工作中用到的shell命令 - sed
bash shell:脚本中修改profile文件更新LD_LIBRARY_PATH的示例
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51953721
10km
2019/05/25
3.1K0
PowerShell一次性替换多个文件的名称
  本文介绍基于PowerShell语言,对文件夹中全部文件的名称加以批量替换、修改的方法。
疯狂学习GIS
2023/10/24
4710
PowerShell一次性替换多个文件的名称
linux:sed修改xml中的值示例
上面的xml中有server.start,xhr.start,restful.start.等三个前缀不同后缀相同的字段。 现在希望通过shell脚本修改server.start字段为false.
10km
2021/12/17
3.3K0
用 Linux sed 命令替换智能引号
每个字母或字符,不管它是否印在你的键盘上,都有一个编码。字符编码可以用不同的方式表达,但对计算机来说,Unicode 序列 u2018 和 u2019 产生 ‘ 和 ’,而代码 u201c 和 u201d 产生 “ 和 ” 字符。知道这些“秘密”代码意味着你可以使用 sed 这样的命令以编程方式替换它们。任何版本的 sed 都可以,所以你可以使用 GNU sed 或 BSD sed,甚至是 Busybox sed。
用户8965210
2021/09/27
2.7K0
生成XML元素
如果使用RootElement()启动文档的根元素,则负责生成该根元素内的每个元素。有三个选择:
用户7741497
2022/07/04
7010
转载:(Mac)在bash和zsh配置环境变量path的几种方法
老习惯,列出本文参考或引用或转载的文档和博客,致以崇高的敬意,感兴趣的可以去看看 1.http://postgresapp.com/ 2.http://postgresapp.com/documentation/cli-tools.html 3.http://www.yiibai.com/postgresql/2013080439.html 4.终极 Shell——ZSH: https://zhuanlan.zhihu.com/p/19556676 5.Zsh安装配置指南 http://www.linuxidc.com/Linux/2013-09/90377.htm
Zachary46
2018/12/24
2.9K0
CSS入门10-替换元素和非替换元素,块级元素和行内元素
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
love丁酥酥
2018/08/27
1.8K0
【XML】快速上手3 XML元素
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
韩旭051
2019/11/08
1K0

相似问题

如何在bash中用xml文件的SED搜索和替换路径元素

20

在vim / sed中用单个空行替换多个空行

20

在bash中用.vmdk替换VirtualBox?

10

在bash中用星号替换数字

20

在sed中用regex替换字符串

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文