[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