我需要識別php源代碼中的所有查詢,這些查詢分佈在不同目錄下的許多文件中。使用grep查找源代碼中字符串中的所有查詢
我雖然關於使用grep和MySQL關鍵字來識別它們。有兩種方法可以區分這個源代碼中的查詢。
- 它們總是用雙引號加引號。
- 他們將始終擁有MySQL關鍵字,如
insert
,select
,update
,delete
和alter
。
但是有一個問題,雙引號內的查詢可以分成多行。例如:
$newQuery = "Select username
from
usertable"
所以我需要找出"Select username from usertable"
的grep,但不能多條線路上工作。
我想:
egrep -e '"(.*?)\+"' test.php | grep "select"
它的偉大工程爲單線,但再次錯過多查詢。
所以,我想
sed -e '/\"/,/\"/!d' test.php
它返回所有的查詢,但後來我做
sed -e '/\"/,/\"/!d' test.php | grep select
它返回,
"select
這是不好的。我想我需要在sed中逃避換行。我如何實現這一目標?任何其他用於bash的標準命令也會執行,比如awk。
不能在測試文件上工作。遺漏了什麼? – user1263746
它適用於您放置的示例片段。 「不工作」意味着沒有輸出,或輸出不符合預期? – Guru
如果您仔細閱讀該問題,您會發現我嘗試的sed解決方案提供了與您的解決方案完全相同的輸出。但我需要單線而不是多線的結果。否則你的解決方案很簡單易懂。輸出應該是這樣的:「從usertable選擇用戶名」在一行中。謝謝! – user1263746