linux 全文搜索与删除

2019-08-17 23:29:39

有时候,我们需要搜索一个目录下特定的字符,这很类似 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 可选。

mac 下面,上面的 sed -i 需要修改为如下:

sudo sed -i '' 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

在 sed -i 后面加一个 ’’ 即可

最后更新于