LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 812|回复: 5

很急的一个问题,请问用脚本如何实现利用vi打开、修改并保存一个文件呢

[复制链接]
发表于 2007-4-11 15:26:32 | 显示全部楼层 |阅读模式
我需要利用脚本调用vi打开一个文件,做些修改,再保存

比如

#!bin/bash
vi abc <==调用vi打开abc文件
:1,$s/xyz/zyx/g <==将全篇的xyz替换为zyx
:wq <==保存并退出

但发现实际运行此脚本只能打开abc文件,无法替换、修改和保存
提示大概是 sucn command not found

上面这些全是手工的方法,似乎机器不认如“:”的东西,无法进入命令行模式

我刚开始学shell编程,非常菜,望广位大侠不吝赐教,不胜感激!
发表于 2007-4-11 15:30:34 | 显示全部楼层
写在脚本里的被认为是脚本命令,而bash中当然没有诸如:1,$s/xyz/zyx/g这样的命令,所以会报命令没有找到。
如果你想实现脚本编辑文件的话,google以下sed
回复 支持 反对

使用道具 举报

发表于 2007-4-11 15:39:34 | 显示全部楼层
vim -c ':1,$s/abc/ABC/g' -c ':wq' x

or

sed -i 's/abc/ABC/g' x
回复 支持 反对

使用道具 举报

发表于 2007-4-11 15:40:38 | 显示全部楼层
遇到问题的时候,最好是先看manpage
haha
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-11 15:40:55 | 显示全部楼层
多谢楼上两位了,我去试试
回复 支持 反对

使用道具 举报

发表于 2007-4-11 18:49:26 | 显示全部楼层
Post by lamry
我需要利用脚本调用vi打开一个文件,做些修改,再保存

应该为需求选用合适的工具,Vi/Vim 并不是最适合这种需要的。最适合这种流编辑的还是 sed 和 awk。当然,如果你坚持要用 Vi/Vim,那就查文档吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表