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 ...
나는 파일이 위처럼 보입니다. 파일 이름을 추출하여 STDOUT에 출력하고 싶습니다.sed/awk : 텍스트 스트림에서 패턴 추출하기
server_log_1.log
server_log_2.log
server_log_3.log
누군가 도움을 줄 수 있습니까? 감사!
파일 이름 패턴은 server_log_xxx.log이며 한 줄에 한 번만 발생합니다.
AWK와
때문에 (공백, 줄 바꿈, 제어 문자, 대부분의 유닉스 파일 시스템에'제외하고 아무것도 '\ 0''와'/'),이 세 줄은 하나의 유효한 파일 이름이 될 수 있습니다. 유효한 파일 이름과 두 개의'... '에 나타날 수있는 내용에 몇 가지 제한을 추가하지 않는 한 파일 이름을 안정적으로 인식 할 수있는 방법이 없습니다. 비 위주의 사용자 제어 변수 (예 : 입력, 호스트 이름)를 기록하는 로그 파일은 잘못 작성된 파서에 대한 주입 공격의 대상이 될 수 있으므로 특히주의해야합니다. – jw013
jw013 : 아니요, 파일 이름에'\ n '이 필요합니다. 그렇지 않으면 그 3 줄은 3 개의 항목입니다. –
@yi''\ n "은 파일 이름에서 유효한 문자입니다. "모든 가능성있는 파일 이름"에 대해 정 확한 일치를 실제로 수행 할 수는 없으며 예제처럼 필자는 전체 줄 또는 줄의 연결 (파일 시스템의 파일 이름 길이 제한까지)이 유효한 파일 이름임을 지적했습니다. 이제 Todd가 문제를 찾고있는 패턴을 지정 했으므로 (xx 부분은 아직 지정되지 않았지만 아마도 숫자를 나타 내기위한 것이기는하지만) 문제가 더 합리적이되었습니다. 나는 네가하는 말을 정말로 따라하지 않는다. – jw013