一条命令实现全目录文本内容替换

2023-03-05 10:56:27 浏览数 (1)

有一个需求,在某个目录下,含有多个文件,需要针对这个目录下的所有文件,只要含有特定字符“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?

0 人点赞