linux - 如何在连续的行中为我的 vi 编辑器添加前缀?

标签 linux sed editor vi

我的输入:

Test1.txt 
a
a
b
b
c
c

预期结果应该是

chown user:user a

chmod 755 a

chown user:user b

chmod 755 b

chown user:user c

chmod 755 c

请建议在单个文档中处理超过 10k 行的最佳方法。 基本上为同一路径添加 2 个不同的前缀命令(一个接一个地重复两次)

提前致谢

最佳答案

如果你的文件是这样的

a
a
b
b
c
c

你可以使用vi命令

:%s/^\(.*\)\n\(.*\)/chown user:\1\rchmod 755 \2/g

如果整个文件都遵循该格式。

使用分组。 \n 匹配新行,\r 插入新行。

或者如果包含文件名并且您的文件类似于

Test1.txt 
a
a
b
b
c
c

使用

:2,$s/^\(.*\)\n\(.*\)/chown user:\1\rchmod 755 \2/g

关于linux - 如何在连续的行中为我的 vi 编辑器添加前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283516/

相关文章:

regex - 模式匹配并使用 sed 在文本文件中的行尾或行首添加行

linux - grep 或 awk 切割 2 条不同的线

json - 如何使用jq从linux中json文件中的特定位置删除方括号

editor - 代码片段的良好 WSYIWIG

linux - 获取使用 sshpass 启动的远程进程的 PID

java - 为 .NET 开发人员推荐 Linux + Java 书籍和资源

linux - 无法通过使用 Maven 和 Linux 的分布式 JMeter 设置将参数传递给从站

regex - 从字符串中间删除字符

TinyMCE 编写了糟糕的 HTML!

django - 为什么我不能再从命令行启动 notepad++?