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
誰かが助けてもらえ:私はとSTDOUTに出力からファイル名を抽出したいですか?ありがとう!
ファイル名のパターンはserver_log_xxx.logであり、1行に1回しか発生しません。 AWKとご入力パターンと
ファイル名は任意の文字(ほとんどのUNIXファイルシステム上のスペース、改行、制御文字、 '「\ 0''と'」/ ' '以外のものについてだけ含めることができますので、 )、その3行は1つの有効なファイル名になります。有効なファイル名と2つの '... 'に現れるものにいくつかの制限を加えない限り、ファイル名を確実に認識する方法はありません。特に、非手直しされたユーザ制御変数(例えば、入力、ホスト名)を記録するログファイルは、記述が不十分なパーサーに対する注入攻撃の対象になる可能性があるため、注意が必要です。 – jw013
jw013:いいえ、ファイル名に ''\ n' 'が必要です。そうでなければ、3行は3つのエントリです。 –
@yi'' \ n "はファイル名に有効な文字です。 "すべての可能なファイル名"にはまったくマッチすることはできません。例のように、行全体またはファイルシステムのファイル名の長さの上限までの任意の連結が有効なファイル名であることを私は指摘しました。 Toddが問題を探しているパターンを指定したので、これはより合理的になります( 'xx'の部分は未だに指定されていませんが、おそらく数字の意味です)。私はあなたが言っていることを本当に「続ける」ことに従わない。 – jw013