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