在PHP中,我使用grep
在幾乎所有檔案中搜尋和計算某些類別的所有用例。
\exec("grep -orE '" . $classesBarred . "' ../../front/src/components | sort | uniq -c", $allClassesCount);
其中$classesBarred
包含類似search-unfocused|bg-app|enlarged-window
(但更多)的類別字串。
當前結果為
' 2 ../../front/src/components/Actions/ActionOwner.vue:show', ' 1 ../../front/src/components/Actions/ActionOwner.vue:action', ' 1 ../../front/src/components/Actions/ActionOwner.vue:show', ' 5 ../../front/src/components/Actions/ActionOwner.vue:action', ' 1 ../../front/src/components/Actions/ActionOwner.vue:show', ....(还有几百行类似的结果)
我需要將結果保存在一個陣列中,類似於:
[ {show: 38}, {action: 123}, {search-unfocused: 90}, {....} ]
編輯:
@Freeman在這裡提供了一個解決方案,使用awk
#grep -orE "btn-gray|btn-outline-white" ../../front/src/components | awk -F: '{列印$2}' | awk -F/ '{print $NF}' |排序| uniq-c| awk '{print $2 "::" $1}'
#得到了以下結果:
btn-gray::1 btn-outline-white::13
是的,我可以看到,你的程式碼使用
awk
將grep
的輸出重新排列為兩列,一列是類別名,另一列是計數, 輸出結果如下:現在你可以透過 PHP 將這個輸出解析為一個數組,程式碼如下:
陣列的結果如下:
更新:
如果你堅持使用 awk 和 sed,你可以這樣做:
結果如下:
rrreee祝你好運!