我想要执行以下操作的bash shell
保存并退出文件
bashpromt# cat mybash.sh
echo "about to open a file"
vim file.txt #I need to use vim application to open a file
#now write something into file.txt
#close the that file.
echo "done."
Run Code Online (Sandbox Code Playgroud)那可能吗?我找到了类似vim脚本的东西,但不知道如何使用它.或者像"HERE"doc这样的东西可以用于此吗?
编辑:我需要验证vim编辑器在我们的文件系统上工作正常.所以我需要编写调用vim的脚本并执行一些命令并关闭它.我的要求不适合做"回声"的东西"> file.txt".我必须使用vim打开文件.
在-w和-WVIM的选项具有理论上的效果如下:
-w {scriptout}您输入的所有字符都记录在文件"scriptout"中,直到您退出Vim.如果要创建要与"vim -s"或":source!"一起使用的脚本文件,这将非常有用.当"scriptout"文件已存在时,将追加新字符.另见| complex-repeat |.{scriptout}不能以数字开头.{Vi无此功能}
-W {scriptout}与-w类似,但不附加,覆盖现有文件.{Vi无此功能}
但是当我这样做时,{scriptout}文件将始终以十六进制序列开头80 fd 60(有时是80 fd 62).
我在portableapps.com上使用gvimportable.exe 7.3.使用-u NONE开关,它也是如此.
这个"神奇数字"是什么?在Windows下使用gvim.exe我无法重播我的脚本,直到我删除了这三个前导字节...
似乎这个功能非常有用,但很难记录.
谢谢您的回答.
我有一个(> 100)个文件,我想用vim处理.示例文件的文本包含以下内容(仅示例):
xyz.csv /home/user/mydocs/abc.txt
/home/user/waves/wav.wav , user_wav.wav
Run Code Online (Sandbox Code Playgroud)
我希望将其替换为:
xyz.csv /var/lib/mydir/abc.txt
/var/sounds/wav.wav , wav.wav
Run Code Online (Sandbox Code Playgroud)
在每个文件中,我需要进行的更改是相同的.我的问题是:
我可以vim通过在bash脚本中调用它来使用搜索和替换功能吗?
如果是这样,我该怎么做呢?
PS:我搜索了SO以获得一些回复,并找到了一些答案,如ex脚本等.我想知道如何ex从bash脚本中调用脚本.