[Tips] 利用grep的正则表达式从文件中提取信息

grep -P '正则表达式'

是用来提取内容的,加上-o选项则是将匹配部分的内容单独输出。

 

例如test.txt内的内容是

 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/__pycache__/optimizer.cpython-35.pyc"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/__pycache__/sansde.cpython-35.pyc"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/cec2005_ncs.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/cec2005_sansde.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/ga_evolution1.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/gene_transformer.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/ncs.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/optimization_algorithm.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/optimizer.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/optproblems-1.2.zip"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/sansde.py"
 create mode 100644 "ray\350\277\201\347\247\273/Strate_export_ray/evolv_project/test.py"

  

现在要提取create model 后面的数字 10064.

这可以通过如下正则表达式:

cat test.txt | grep -P "create mode\s+[0-9]+" -o | grep -P "[0-9]+" -o

  

cat test.txt:是将test.txt中内容读取出来作为标准输入。

grep -P "create mode\s+[0-9]+" -o :

会将

create mode 100644

都提取出来。

grep -P "[0-9]+" -o:

会将100644都提取出来。

 

posted @ 2020-04-28 20:16  虚无真仙  阅读(2820)  评论(0编辑  收藏  举报