将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

 找回密码
 开始注册
查看: 6564|回复: 6
收起左侧

grep 刷选的功能配合xargs

[复制链接]
发表于 2018-12-8 20:10:48 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2018-12-8 20:43:41 | 显示全部楼层
grep -rn "hello,world!" *$ Q* U$ d5 ~8 ^7 B
9 Y  q2 S* r% S" w0 S# O

0 {! h/ U+ J* ?3 }) c7 h* {; |# J, {" u4 ?, x: f) N
* : 表示当前目录所有文件,也可以是某个文件名
6 u0 S- X! C% _. ]: W
) v) C2 @- s4 e% ^! P# o$ n-r 是递归查找
. a9 d; T0 o& X% k' b- b& D
! d8 c2 l( B; L% S. c-n 是显示行号: l) S) {3 i, O. i
2 v$ k) Q3 M5 e; s; j+ e
-R 查找所有文件包含子目录* D  d4 U- l6 C. O9 r2 D
/ M% ]% z. I& N+ p
-i 忽略大小写
" @+ t  L9 y5 c& h9 L! L
: [$ T. v8 |8 ^& r% z下面是一些有意思的命令行参数:6 j3 Q. v8 ?' H. j

  @1 r, F: G9 D) i$ m4 J' | + c- A& R( i" ^+ T6 W0 V
& v" n* |$ V/ d' o) f$ f5 `, R5 M
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, + `! ]: X3 E. K! i# @

; c4 J% b4 H$ b2 I. o# cgrep -l pattern files :只列出匹配的文件名,
% j2 M1 }3 J5 ^  ^% A- S. C: C
grep -L pattern files :列出不匹配的文件名,
/ w/ a  d0 v0 e/ c* q# l
' k3 |& D5 h- Z5 w- P8 u( B  ugrep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), % `; b  @! |$ ~. a+ A/ i; ?/ a( l

5 S; B' C. r7 n! Z+ D, }* H! ]grep -C number pattern files :匹配的上下文分别显示[number]行, / T( a4 \: c) p9 |: N/ [

! @# [; d3 o% Bgrep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, . ^: C$ P5 Y: s- a
: |4 z$ l, E0 R8 ?) t7 d( j
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
" J1 \9 Z6 j6 a8 q4 [& z$ |% H$ ?/ P1 o; U
这里还有些用于搜索的特殊符号:
; J: _/ q# l4 ]2 a, l7 ?. B- C8 g. a5 N0 }3 F

* s: F" r2 _& G: }2 ]$ A
/ G, e6 B2 i) j" W# R5 |\< 和 \> 分别标注单词的开始与结尾。
1 Y  b+ I2 `( h, U* H
& E* H4 p! d0 R3 `0 v例如: 9 B% {0 k; y$ L4 {. v

. ]3 u5 J' B: Y5 G' Ygrep man * 会匹配 ‘Batman’、‘manic’、‘man’等,
* X' @/ q) R; D( k4 n4 N& c! _* K; |: J4 R/ M0 Z
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
/ f3 j7 w& g% O3 X2 Z: {$ C+ u. U
4 Q# t. q/ S3 q$ K* ogrep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 4 A2 I# v: g% D' U. ^/ J: D
% v! S7 C. Z" Y& |1 ^) E: z
'^':指匹配的字符串在行首, : T& [) y8 m; d! j; t

' A3 q, r! d0 `'$':指匹配的字符串在行尾,  
发表于 2018-12-9 10:02:12 | 显示全部楼层
xagrs 在很多场景中可以配合使用的。   修改查询出来 的文件字符,替换相关文件等操作。. |- k( o) [! i1 z8 e# J1 H$ p
比如:9 h8 A8 Z: k: i/ N- b7 f3 Y& O
find -type f -name “a.php”    |xargs sed -i '/aa/s/aa/bb/'
0 @2 B' h5 ]" l; @& c( B/ ^( I3 J
发表于 2018-12-9 10:05:38 | 显示全部楼层
有的时候find -type f -name "*.txt"  |xagrs grep '字符'3 U' @" n1 T) r0 V1 w& u
每个用法不一样。
* k+ ~+ n& n# W2 ?
5 i3 S3 k' t/ H8 Ygrep -L pattern files :列出不匹配的文件名,
 楼主| 发表于 2020-3-18 21:53:27 | 显示全部楼层
sudo cat /var/log/sudo.log|uniq  |grep -e "/bin/ovs-vsctl show" -e "/bin/ovs-dpctl dump-flows" -e "/bin/systemctl status openvswitch" -e "/bin/ovs-dpctl dump-flows"  -e "/bin/ovs-appctl bridge/dump-conntracks-summary alubr0" -e "bin/ovs-appctl vm/port-show" -e "/sbin/ip netns exec pat ifconfig" -e "/sbin/ip netns ecec pat ip router"
 楼主| 发表于 2020-3-18 22:02:23 | 显示全部楼层
sudo cat /var/log/sudo.log|uniq  |grep -e "/bin/ovs-vsctl show" -e "/bin/ovs-dpctl dump-flows" -e "/bin/systemctl status openvswitch" -e "/bin/ovs-dpctl dump-flows"  -e "/bin/ovs-appctl bridge/dump- " -e "/bin/ovs-appctl vm/port-show" -e "/sbin/ip netns exec pat ifconfig" -e "/sbin/ip netns ecec pat ip router"$ I+ Y, g7 i6 w9 u
* R; e! _& f) `# f
sudo cat /var/log/sudo.log|uniq  |grep -e "/bin/ovs-appctl bridge/dump- "
 楼主| 发表于 2020-3-18 22:02:59 | 显示全部楼层
sudo cat /var/log/sudo.log|uniq  |grep -e "/bin/ovs-vsctl show" -e "/bin/ovs-dpctl dump-flows" -e "/bin/systemctl status openvswitch" -e "/bin/ovs-dpctl dump-flows"  -e "/bin/ovs-appctl vm/port-show" -e "/sbin/ip netns exec pat ifconfig" -e "/sbin/ip netns ecec pat ip router"
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2023-2-1 02:07 , Processed in 0.044667 second(s), 26 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

快速回复 返回顶部 返回列表