回答
你可以用ed这个unix行编辑器来完成这个任务,它是vi的祖先。
fix_file() {
ed $1 <<< EOF
1,55d
25,35s_.*_// &_
wq
EOF
}
现在,对于您需要的每个文件F,只需执行fix_file F
即可。
尽管使用ed
或sed
是一种常见的做法, 有时使用议会是方便多了。 事实上,在这种情况下 而不是写一个ed
样脚本“盲目”,它更容易交互与
vim -w log.vim file1.txt
执行文件之一的 所需的编辑,然后重复上休息的文件。
for f in file*.txt; do vim -s log.vim "$f"; done
在你的情况log.vim
文件将可能有类似这样的内容:
gg55dd:25,35s/^/\/\//
:w %_new
:q!
。注意,保存与新名称的文件,你不应该直接输入,但 而使用%
替代。另一种方法是事先复制文件 ,然后在原地进行编辑(将每个文件保存为:w
)。
此方法的优点是,您可以交互式地进行所有更改 ,确保您获得想要获得的结果。
当然,你可以做在ed
样的方式相同。
for f in file*.txt; do vim -c '1,55d|25,35s/^/\/\/ /|w! '"${f}_new"'|q!' $f
且不说它在 一个Vim解决方案是优选的问题明确说明。
不要使用GUI版本(gvim),请参阅[我的问题](http://stackoverflow.com/questions/3981535/using-the-w-option-of-vim)和相关的错误。在GUI中,您必须编辑脚本。 – Benoit 2011-05-12 14:55:10
@Benoit感谢您的警告!由于我从不使用GVim,所以我不太可能注意到这种行为,而知道这一点很重要。 – 2011-05-12 15:59:35
- 1. 几个可编辑的PDF
- 2. 手动编辑boltdb文件
- 3. 如何阻止Emacs自动编辑我的启动文件?
- 4. 自动编辑NSString?
- 5. 自动编辑SystemVersion.plist
- 6. Libreoffice编辑器自动更正编辑
- 7. 可以编辑自定义文件的独立VB.NET编辑器
- 8. 编辑一个文件的行编号
- 9. 编辑多个HTML文件
- 10. 编辑多个.htaccess文件
- 11. 编辑WCF服务的自动生成的DMBL文件
- 12. 防止Adobe CreativeSDK插件自动保存编辑文件
- 13. Expression Blend 4.0 - 自动重新加载编辑的文件?
- 14. 文件最近编辑部分的自动书签
- 15. 哪些symfony自动生成的文件应该避免编辑?
- 16. 编辑文件
- 17. 编辑文件
- 18. 编辑文件
- 19. 编辑.RAR文件评论来自python
- 20. 如何编辑Xcode中每个新创建文件的自动前缀生成?
- 21. 如何通过其他编辑器自动签出TFS文件
- 22. Eclipse JavaScript编辑器:内容辅助js文件,自动完成
- 23. 编辑一个文本文件
- 24. 编辑/个性化PirateBox的HTML文件?
- 25. 编辑一个打开的csv文件
- 26. 编辑多个RHEL的fstab文件
- 27. 编辑一个9GB的.sql文件
- 28. 在Laravel动态编辑config/database.php文件
- 29. dtsx文件手动编辑不适用
- 30. 无法手动编辑CDB文件
如果您想在不打开文件的情况下编辑文件,则需要在'bash' shell中使用'sed'。 – pavium 2011-05-09 03:14:35
'ex'会比'sed'更好的匹配,'ex'使用相同的命令集'vi'。 – 2011-05-09 03:21:27