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

易陆发现论坛

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

grep 刷选的功能配合xargs

[复制链接]
发表于 2018-12-8 20:10:48 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2018-12-8 20:43:41 | 显示全部楼层
grep -rn "hello,world!" *
+ H0 a& h0 G, G5 k' ?! ?4 v3 m; {7 `# Q- v
# P0 o5 N$ c9 }* \3 r8 v

2 H+ I# {, V# o/ V: q* : 表示当前目录所有文件,也可以是某个文件名
4 N# I# R& O! ]$ w! w- k
$ W4 }( Z5 e8 z3 B3 ]  o-r 是递归查找
$ ?9 }& M. [& \1 z& }) c
* }/ p3 h) ]' T0 {-n 是显示行号
: |- T: I7 A) d9 v  ~2 a
3 k  N& H, l  O. M7 `-R 查找所有文件包含子目录
' m- U# r% A. ^$ K6 t% M4 s7 F8 F$ u2 A# G) J0 o5 m
-i 忽略大小写
1 v) o) ~0 x7 l" q" O# K9 J9 a7 K& w. F4 o4 w; p( w7 k
下面是一些有意思的命令行参数:
9 E& H# n  I' i# g9 F: o+ T' O, i2 J0 i: ]  \. m7 W
! E8 x0 O6 N' b" }- C; g+ z
* F0 H/ o" q- E4 p+ L  U" u
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
2 R* o6 I4 r7 b, b% @* x
7 r; e. O) W6 M) Vgrep -l pattern files :只列出匹配的文件名, ! r) A% O0 S0 j+ M/ r# g

' S$ k: S1 u0 U  n1 n) dgrep -L pattern files :列出不匹配的文件名,
9 A# {" Z: U8 N+ p; l! L4 J* E& s' }3 N! s6 ?) c) J
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),   m6 q; |' M2 g  W; X

" X# W' g4 o) Q/ egrep -C number pattern files :匹配的上下文分别显示[number]行,
- t- Y8 D+ i: ^* f% G# C: h' Y8 F% W3 q' Y( f; Y# R: p, p8 e
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, : x7 t, _- z& [8 U9 B

. e2 B; {1 K% Lgrep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。   D7 p3 O# N: @: J2 c

& _# G, c& j& w5 w* h+ S! R: t这里还有些用于搜索的特殊符号:
" j+ r# N- z' i6 i* b
- B  j- i4 |  [; f4 \' F : y, q- q6 k' m% v# u5 s: C  g
* x- q$ W" e3 O" S, P) e
\< 和 \> 分别标注单词的开始与结尾。. g+ y% ]' A- T9 ^

1 C5 h' p2 e$ F; ]# J) U例如: ( b' K2 x  @' u2 ~3 z
4 ^# V0 Q$ r5 e. u( S# {/ {8 x
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, % f$ c3 h8 X$ j1 j

' n0 d( f" I$ Pgrep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, , \4 ^' `' q/ R7 o& p0 l2 Z; s

* ?: p" i8 [1 Z8 H, L' W3 igrep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 0 k, m3 r% A6 S1 K  r

: N5 S' s) Q! @# Z'^':指匹配的字符串在行首, & p, w; y  h* Y- K9 U' x

1 b" t& G3 u/ B0 L'$':指匹配的字符串在行尾,  
发表于 2018-12-9 10:02:12 | 显示全部楼层
xagrs 在很多场景中可以配合使用的。   修改查询出来 的文件字符,替换相关文件等操作。
9 l6 Q. c5 i4 j& X比如:& p/ o" K# F% H) s' Q8 B: b
find -type f -name “a.php”    |xargs sed -i '/aa/s/aa/bb/'
! I: \/ Y* b" x7 r0 q0 U( P
发表于 2018-12-9 10:05:38 | 显示全部楼层
有的时候find -type f -name "*.txt"  |xagrs grep '字符'
$ v2 Z% n6 G* U8 G9 Z! ~- P每个用法不一样。2 V7 C2 g$ s7 U8 q$ a8 k. W

1 `4 ^6 @4 N( H$ R- ~% h) Tgrep -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"
8 t$ _( H; F+ V; N. J  W3 Y- O. z' [1 x$ s
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-3 01:55 , Processed in 0.058379 second(s), 24 queries .

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

© 2012-2022 Comsenz Inc.

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