【sed】快速替换当前文件夹下文件中指定内容
在 Linux 中,可以使用以下命令来实现这个需求:
1 | sed -i 's/hide: true/hide: false/g' * |
解释一下这个命令:
sed
是流编辑器,用于对文本进行过滤和转换。-i
选项表示直接修改文件,而不是输出到终端。's/hide: true/hide: false/g'
是 sed 的替换命令,其中:s
表示替换操作。hide: true
是要被替换的字符串。hide: false
是替换后的字符串。g
表示全局替换,即在每一行中将所有匹配的hide: true
都替换为hide: false
。
*
表示当前文件夹下的所有文件。
需要注意的是,这个命令会修改当前文件夹下所有文件的内容,包括二进制文件等,可能会导致一些文件损坏。如果只想修改特定类型的文件,可以使用通配符指定文件类型,例如替换当前文件夹下所有 .txt
文件中的内容:
1 | sed -i 's/hide: true/hide: false/g' *.txt |
另外,如果当前文件夹下有子文件夹,并且也想修改子文件夹中文件的内容,可以使用 find
命令结合 sed
来实现,例如:
1 | find . -type f -exec sed -i 's/hide: true/hide: false/g' {} + |
这个命令会递归查找当前文件夹及其子文件夹下的所有文件(-type f
),然后对每个文件执行 sed
命令进行替换。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lei Qi's Blog!
评论