2011-07-01 ... /home/todd/logs/server_log_1.log ...
2011-07-02 ... /home/todd/logs/server_log_2.log ...
2011-07-03 ... /home/todd/logs/server_log_3.log ...
我有一個如上所示的文件。我想從中提取文件名並輸出到標準輸出爲:sed/awk:從文本流中提取圖案
server_log_1.log
server_log_2.log
server_log_3.log
有人可以幫忙嗎?謝謝!
文件名稱模式是server_log_xxx.log,它只在一行中出現一次。
由於文件名裏可以包含任何字符(空格,換行,控制字符,大多數Unix文件系統,除了'什麼「\ 0''和'」 /'' ),那3行可以是一個有效的文件名。沒有辦法可靠地識別文件名,除非您對有效的文件名和可以出現在兩個'...'中的內容添加一些限制。您特別需要小心,因爲記錄未經分析的用戶控制變量(例如輸入,主機名)的日誌文件可能成爲針對寫入不佳的分析程序的注入攻擊的目標。 – jw013
jw013:不需要,在文件名中需要''\ n'',否則這3行是三個條目 –
@yi''\ n''是文件名中的有效字符。對於「所有可能的文件名」,你無法真正做出任何理智的匹配,並且正如我指出的那樣,整行或任何級聯(直到文件系統的文件名長度限制)是一個有效的文件名。現在託德指定了他正在尋找的模式變得更加合理(儘管「xx」部分仍未指定,但它們可能代表數字)。我並不真正按照你所說的「不」來進行。 – jw013