有一个需求,在某个目录下,含有多个文件,需要针对这个目录下的所有文件,只要含有特定字符“XXX”,就将“XXX”变成“YYY”。
非常常见的应用场景,在十几前有一个编辑软件叫Sakula,实现这个功能非常的方便,这个编辑器,现在估计找不到了。
我们使用一条命令来实现这个需求。在Mac系统上测试,发现Sed不灵验,还好亨利老师提醒, Mac下的Sed并不是GNU Sed。所以,才出现了同样的命令在Linux好用,在Mac不灵验。
解决方法:
代码语言:javascript复制brew install gnu-sed
使用的时候不要用sed,用gsed,为了统一,在Kali Linux展示这个功能。
为了便于展示实例,用一条命令进行当前目录全局替换, 用另外两个命令展示,文件的创建与内容显示。 实际操作太快,有可能看不清楚,在视频中用SpaceVim查看文件内容。
Mac的命令虽然有时候和Linux名字相同,但Mac实现和GNU的实现还是有区别的,典型的命令如:sed,grep。
同样的命令,在Linux上运行通过,在Mac上,Grep使用时要加“--”。
与普通的编辑器比,Vim是另外一种操作方式。还有就是Vim开始的学习曲线比较陡峭,后期没有难度降低。如果有好的教材,学得就快一些。推荐MIT公开课中,Vim的教程,之前介绍的MIT公开课有。
VIM推荐另外两个版本:SapceVIM,还有风神介绍的helix ,都具备丰富的提示功能。
SpaceEmacs,相当于在Emacs中使用VIM,别的都好,就是太大,吃机器的性能比较严重,慢的时候比VSCode还慢,看使用习惯选择。
纯命令行展示,整个过程:http://mpvideo.qpic.cn/0bc3f4aaeaaaraapeqgazzrval6daixqaaqa.f10002.mp4?
SpaceVim辅助展示,操作过程:http://mpvideo.qpic.cn/0bc3e4aaeaaapmapctwazrrvaj6daitqaaqa.f10002.mp4?