【发布时间】:2015-09-10 21:33:40
【问题描述】:
我正在使用 Korn shell。有一个不断更新的日志文件。我需要更新这个文件并在其中插入一个字符。我正在为它编写一个 shell 脚本。谁能建议我如何通过脚本来做到这一点?我需要通过脚本使用 vi 编辑器打开和关闭该文件。请提出一种方法。
以下是我在编辑该文件时使用的命令: vi 我的文件 按“E/e”(开始编辑) 按“i”(插入) 按“F”(插入缺失的 F) 按: Esc -> : -> wq! -> [回车] -> y -> [回车]*
我需要在这个文件的第一行开头插入一个 F。请任何人都可以建议我如何通过 vi 编辑器做到这一点?我不能使用像“sed”这样的任何其他编辑器,因为该文件正在不断更新。
【问题讨论】:
-
与其假设
vi是适合这项工作的工具,为什么不足够详细地描述这项任务,以便人们可以提出是合适的工具的建议? -
“那个文件在不断更新”?
vi并不比sed更原子(虽然sed -i确实 有一些自己的错误),所以我不知道你认为你正在解决什么问题。跨度> -
...如果您有一个文件正在被其他进程更改,并且您想确保您的更改不会影响其他进程想要进行的更改,那么您需要查看在咨询锁定 - 并修改其他进程以执行相同的操作。
-
“不断更新”是指其他程序一直打开这个文件吗?如果是这样,那么
sed和vi都不会。vi用临时文件替换原始文件,但程序仍将更新原始文件。在程序关闭之前,原件不会去。如果您执行了vi,您现在将丢失程序所做的所有更新(假设程序没有锁定文件)。为什么需要这样做?