用grep时,发现一个怪异的问题。

背景:grep -E表示用扩展的正则表达式。grep -P 表示用perl正则表达式,区别:http://www.cnblogs.com/wangkangluo1/archive/2012/04/13/2446021.html

测试文件如下:

MAX_STAY_TIME   103299  52      2923
SLIDE_BOTTOM    101047  0       2
MAX_STAY_TIME   103299  53      2861

用例1:

grep -P '[[:space:]]SLIDE_BOTTOM[[:space:]]' temp
grep -P '\sSLIDE_BOTTOM\s' temp 
grep -P '[\n]SLIDE_BOTTOM[[:space:]]' temp 结果: MAX_STAY_TIME
103299 52 2923 SLIDE_BOTTOM 101047 0 2

用例2:

grep -E '[[:space:]]SLIDE_BOTTOM[[:space:]]' temp 
结果:
空

用例3:

grep -E 'SLIDE_BOTTOM[[:space:]]' temp
结果:
SLIDE_BOTTOM    101047  0       2

分析上面三个例子,可以得出grep -P在处理换行符时,有一个小问题,会把上一行的换行符也算成下一行的开头。

 

相关文章:

  • 2021-07-10
  • 2021-09-18
  • 2021-07-31
  • 2021-06-03
  • 2021-08-29
  • 2021-06-11
  • 2022-12-23
  • 2022-03-08
猜你喜欢
  • 2022-02-04
  • 2021-11-21
  • 2022-12-23
  • 2021-10-16
  • 2021-05-11
相关资源
相似解决方案