타임스탬프가 있는 고유한 줄이 포함된 텍스트 파일이 있습니다. 다음은 텍스트 파일의 줄 예입니다.
111.111.11.11: 2017년 6월 18일 08:01:34: abc\존 도우 1윈도우...
111.111.11.11: 2017년 6월 18일 09:01:34: abc\존 도우 2윈도우...
111.111.11.11: 2017년 6월 18일 09:30:34: abc\존 도우 2윈도우...
111.111.11.11: 2017년 6월 18일 10:01:34: abc\존 도우 3윈도우...
111.111.11.11: 2017년 6월 18일 11:01:34: abc\존 도우 1윈도우...
111.111.11.11: 2017년 6월 18일 12:01:34: abc\존 도우 3윈도우...
111.111.11.11: 2017년 6월 18일 13:01:34: abc\존 도우 3윈도우...
...
이 선은 먼 길을 간다. 행의 첫 번째 항목을 이동해야 합니다.존 도우 1다른 텍스트 파일에서 발생하며 john.doe1이 포함된 다른 모든 줄을 무시합니다. 나는 전체 파일에 대해 동일한 작업을 수행해야 합니다.존 도스.
다른 파일로의 출력은 다음과 같아야 합니다.
111.111.11.11: 2017년 6월 18일 08:01:34: abc\존 도우 1윈도우...
111.111.11.11: 2017년 6월 18일 09:01:34: abc\존 도우 2윈도우...
111.111.11.11: 2017년 6월 18일 10:01:34: abc\존 도우 3윈도우...
문제는존 도스일반적으로 실제 이름은 이전에 몰랐으며 문자 "\"와 " " 사이에 나타나는 것으로만 알고 있었습니다.
답변1
익숙한 Awk 중복 제거 관용구를 확장하여 필드를 구분하는 대신 일치하는 하위 문자열을 사용하세요.
awk 'match($0, /\\[^ ]*/) && !seen[substr($0,RSTART,RLENGTH)]++' file