[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都提取出来。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM