Shell
按出現的順序從 grep 獲取結果?
我正在嘗試 grep 日誌文件以僅顯示與某個會話 ID 匹配的行。到目前為止,它工作得很好。但是,當我得到 grep 命令的結果時,我並沒有按照它們出現的順序獲取條目。
如果目錄中的日誌文件有這個數據:
SESSNUM=4437 login.jsp SESSNUM=4437 welcome.jsp SESSNUM=4437 info.jsp SESSNUM=4437 logout.jsp
我輸入這個:
grep SESSNUM=4437 *
我得到這個資訊:
SESSNUM=4437 logout.jsp SESSNUM=4437 welcome.jsp SESSNUM=4437 login.jsp SESSNUM=4437 info.jsp
有沒有辦法讓 grep 按照它們在日誌文件中出現的順序顯示匹配行?
謝謝!
IVR 復仇者
grep SESSNUM=4437 *
Grep 通常按順序返回。您確定從正確的日誌文件中獲取結果嗎?如果您指定所需的日誌文件而不僅僅是 *,它是否可以正常工作?
更正!目錄中應該只有一個文件包含會話號,但我在 grepping 時不一定知道哪個文件。
我建議您使用 grep 的 -H 選項,這樣您就可以確定您只從一個文件中獲取內容。這應該是預設行為,但您發布的內容不包括文件名,除非您將其剝離。
-H, --with-filename Print the file name for each match. This is the default when there is more than one file to search.