linux - 替换多个文件中的文本

标签 linux sed grep

我想支持 android RTL 并且想要一种快速的方法来在一堆 xml 中添加支持 RTL
所以基本上我想要的是替换

android:paddingLeft = 10dp  < !-- here 10dp can be anything else -->

android:paddingLeft = 10dp
android:paddingStart = 10dp

我已经看到了多个可以进行文本替换的 grep 和 sed 示例,但在这里我需要保留额外的文本并在下一行中复制..

我确定我可以在 notepad++ 中执行此操作和/或编写简单的 java 代码..但正在寻找一个简单的解决方案。

最佳答案

使用sed

sed -r 's/(android:paddingLeft(\s*=\s*\w+))/\1\nandroid:paddingStart\2/g' file

regex101 demo用于测试和解释

关于linux - 替换多个文件中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19629406/

相关文章:

linux - 如何将 PostgreSQL 数据库连接到 Google Cloud Compute Engine?

linux - 用变量替换文本

linux - 是否可以在 grep 正则表达式中重复匹配?

linux - 在命令行中格式化 grep 输出

linux - 查找空文件,如果找到更新文件

java - 为什么 mmap()(内存映射文件)比 read() 快

linux - 如何从远程服务器通过 Bash 脚本使用 awk 返回数组

linux - 无法在 Centos 7 上自动挂载 NFS 共享

bash - 使用 sed 和 gnuplot 循环绘制文件中的特定行

linux - 如何使用sed或awk处理指定列的内容?