有时候,我们需要搜索一个目录下特定的字符,这很类似 idea 的搜索与替换,但前提是你有 idea,同时呢,还得把目录以项目的形式打开,当然,vs code 也有类似的功能。今天呢,我们要做的是,通过 linux 命令行搜索,优点是临时用用挺好。尤其是搜索系统文件的时候。我们开始吧。
Linux 命令行全文查找
find ./ -type f -name "*"|xargs grep "***" > /tmp/file.log
通过这个命令,可查询当前目录下,所有包含 *** 的文件(搜索范围是通过 -type f -name "*" 限定的),然后将结果保存到 /tmp/file.log
Linux 删除包含特定字符的行
sed -i '/***/'d `awk -F: '{print $1}' /tmp/file.log`
通过该命令,你可以删除 包含 *** 的行,前提是你已经通过第一步做了搜索。
Linux 批量字符串替换
perl -pi -e 's|test|test1|g' `find ./ -type f`
通过该命令,可以把当前目录下所有文件里的 test 为 test1
Linux 批量替换一个文件里的字符串
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
通过这个命令可以把 /etc/apt/sources.list 里的所有 archive.ubuntu.com 改为 mirrors.ustc.edu.cn 同理,你可以修改别的文件,sudo 可选。