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

易陆发现论坛

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

grep 刷选的功能配合xargs

[复制链接]
发表于 2018-12-8 20:10:48 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2018-12-8 20:43:41 | 显示全部楼层
grep -rn "hello,world!" *
: L) t% p5 c3 e. v, s" k+ G/ o% u- P& U. `0 b) R' D$ L

1 F' U  ~& R" y, b) s+ J" _! I' o( Q: P5 a0 X# ]
* : 表示当前目录所有文件,也可以是某个文件名0 \& ^: Z) k5 V2 I' _% {7 y6 A/ N
# n0 q8 c. ~$ O( T( o2 z7 \1 k
-r 是递归查找
& ^" i2 P+ i1 y6 k- _- a9 B& w$ ^
, J; [# r2 b/ w& F-n 是显示行号9 A$ N8 n8 J. [' K) G3 s

% q  M( R! _3 g-R 查找所有文件包含子目录
( x* B3 A( Z. |; w
% X* j4 G) v' ~" T5 {-i 忽略大小写9 n; z1 V1 {; E2 N8 m% F+ m1 S5 k) i

1 Y3 A  f- \; m+ m# ?下面是一些有意思的命令行参数:: Z' y/ e) Q* J2 y. e( |+ c' E
2 R7 V) T% I" k) c+ T

- K0 _4 o4 x$ Q9 J" w8 Y  f4 g( z0 @7 A
  c) h5 P6 J% K% _+ S' `grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
# I: O' h2 {% f' h5 K# G2 Z3 j: V: S" _2 T: _! K
grep -l pattern files :只列出匹配的文件名,
# p. h0 |' I; k& c' L3 Z$ f# [7 K0 a' m; p* E+ _
grep -L pattern files :列出不匹配的文件名, % K; y, d: i" H1 ~; v" k4 U

6 o& _5 f2 Y! q' N7 rgrep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), ' b) v4 f& O' s0 o( f+ G

6 t* X! ~9 O! |6 U8 V2 `5 F. ~grep -C number pattern files :匹配的上下文分别显示[number]行,
0 B# d! e1 B* k+ }0 ~. N
$ k" @/ H: |3 m: hgrep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
& ~5 K0 ^- {' S# s- D
2 A3 @: a4 U9 e! _. ?grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 : ~9 g5 v) `+ d) v0 p; ^
+ w& J+ B9 A3 B- d+ Z
这里还有些用于搜索的特殊符号:! e% n. L% f6 @* m
2 p+ S$ ^$ b  h

$ R' s3 I( y* G; c0 j, T# w% ~0 V- I8 }9 C4 L- M
\< 和 \> 分别标注单词的开始与结尾。& b2 ]" f0 n. q: f- J( e) ~
: J- V# |  p/ Z1 _, L' ?5 w, e
例如: % q# D1 U% G  ^& M

: R# c, P+ ?9 e& v  Qgrep man * 会匹配 ‘Batman’、‘manic’、‘man’等, ) z6 K8 U  N( v4 A7 M9 K- ]
% @* y4 A) L9 S
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
3 H6 _& X6 k1 H: K' V* b2 p: u9 Z' a% I1 u! j
grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 . J) k6 @5 P# n8 h

' j/ ?" Q+ x" y! [9 Q$ r2 Q/ X'^':指匹配的字符串在行首,
$ T: m) M$ e& H$ p7 i9 h* \7 U
7 B+ v. r4 c1 _  C6 q2 O6 q0 g'$':指匹配的字符串在行尾,  
发表于 2018-12-9 10:02:12 | 显示全部楼层
xagrs 在很多场景中可以配合使用的。   修改查询出来 的文件字符,替换相关文件等操作。& ^4 K' H3 G$ R% X; D  K& _
比如:8 A( o6 l0 ?9 Z/ T' ?# Y
find -type f -name “a.php”    |xargs sed -i '/aa/s/aa/bb/'
8 S% Q! f2 K2 C# `
发表于 2018-12-9 10:05:38 | 显示全部楼层
有的时候find -type f -name "*.txt"  |xagrs grep '字符'4 ]" B8 Z2 v$ V
每个用法不一样。
- [5 ]/ P1 v' z& H. A$ k* z1 O, o  n) @
grep -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"' O0 ]$ f7 n9 M- a$ u4 J) u4 i. l
5 ?' U/ [! _' k7 y3 e& {0 L$ @1 W
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, 2022-10-4 06:25 , Processed in 0.041498 second(s), 24 queries .

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

© 2012-2022 Comsenz Inc.

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