linux grep查找文件内容

linux grep查找文件内容,第1张

Linux查找文件内容的常用命令方法。

1、从文件内容查找匹配指定字符串的行:

$ grep "被查找的字符串" 文件名

例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件

grep "thermcontact" */*.in

2、从文件内容查找与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名

3、查找时不区分大小写:

$ grep –i "被查找的字符串" 文件名

4、查找匹配的行数:

$ grep -c "被查找的字符串" 文件名

5、从文件内容查找不匹配指定字符串的行:

$ grep –v "被查找的字符串" 文件名

6、从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行

find / -type f -name "*.log" | xargs grep "ERROR"

例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行

find . -name "*.in" | xargs grep "thermcontact"

grep命令可以查找单个文件或文件夹下文件中的内容,使用参数“r”或“-R”可以递归查找指定文件夹下的所有文件参数“l”可以让grep输出包含指定字符串的文件名,首次匹配成功后立刻停止对同文件的查询。如果不使用“l“,grep查询单个文件时输出文件中所有包含指定字符串的行,对文件夹查询时则按照“文件名:包含字符串行”的方式输出。

有了上面提到的知识,执行批量替换的命令可以写为:

grep "netingcn" -rl /assign-path | xargs sed -i 's/netingcn/www.netingcn/g'

sed -i 's/netingcn/www.netingcn/g' `grep "netingcn" -rl /assign-path`

还有一种比较复杂的写法:

grep "netingcn" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/netingcn/www.netingcn/g'

其中命令awk用于分割字符串、uniq对结果进行除重。

、网络上现成的资料

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`

linux sed 批量替换多个文件中的字符串

sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

例如:替换/home下所有文件中的www.***.net为***.net

sed -i "s/www.***.net/***.net/g" `grep www.***.net -rl /home`

exp:sed -i "s/shabi/$/g" `grep shabi -rl ./`

2、自己额外附加

2.1 将文件1.txt内的文字“garden”替换成“mirGarden”

# sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很简单

2.2 将当前目录下的所有文件内的“garden”替换成“mirGarden”

## sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已

在 Linux 系统中可以使用 grep 命令来查找文本中不以字母开头的行。

例如,下面的命令可以在文件 "file.txt" 中查找所有不以字母开头的行:

grep -v "^[a-zA-Z]" file.txt

-v 参数表示反向查找,也就是查找不符合条件的行。

"^[a-zA-Z]" 是一个正则表达式,表示以字母开头的行。

也可以使用sed命令,例如

sed -n '/^[^a-zA-Z]/p' file.txt

-n 选项表示不自动打印输出,/^[^a-zA-Z]/表示以非字母开头的行,p表示打印出来

如果要在文件夹内所有文件中查找,可以使用find命令,例如:

find /path/to/folder -type f -exec grep -v "^[a-zA-Z]" {} \

这样就可以在文件夹内所有文件中查找出不以字母开头的行了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11622125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存