파일에서 사용자 이름을 제거하고 증분 번호로 바꿉니다.

user288657

이것은 텍스트 처리 질문입니다. 2 개의 파일이 있습니다.

joeblogs
johnsmith
chriscomp
12:00:00 (AAA) OUT: "string" joeblogs@hostname
12:00:00 (AAA) OUT: "string" joeblogs@hostname
12:00:00 (AAA) OUT: "string" johnsmith@hostname
12:00:00 (AAA) OUT: "string" joeblogs@hostname
12:00:00 (AAA) OUT: "string" chriscomp@hostname

파일 1에는 로그 (파일 2)에 나타나는 고유 한 사용자 이름 목록이 포함되어 있습니다.

원하는 출력

12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER2@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER3@hostname

두 파일이 모두 필요하지 않은 것 같습니다. 파일 1은 고유 한 사용자 이름에 대해 파일 2를 구문 분석하여 생성됩니다. 내 논리는 파일 2에 나타나는 사용자 이름 목록을 가져 와서 sed.

다음과 같은 것 :

for i in $(cat file1);do sed -e 's/$i/USER[X]';done

어디 USER[X]각각의 고유 한 사용자 이름으로 증가합니다.

그러나 나는 이것을 할 수 없다. 논리가 건전하다고 생각조차하지 않습니다. 원하는 결과를 얻기 위해 도움을받을 수 있습니까? awk/ sed/ grep/ bash모두 환영합니다.

RomanPerekhrest

"2 개의 파일이 필요하지 않음" 을 확인 했으므로 다음 awk솔루션을 사용하여 한 번에 초기 로그 파일 을 처리하십시오 .

awk '{
         u_name = substr($5, 1, index($5, "@"));
         if (!(u_name in users)) users[u_name] = ++c;
         sub(/^[^@]+/, "USER" users[u_name], $5)
     }1' file.log

출력 :

12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER2@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER3@hostname

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

우분투 명령 줄에서 각 파일을 매개 변수로 사용하여 파일 이름을 바꿉니다.

분류에서Dev

BASH를 사용하여 특정 줄 번호 사이의 파일 내용을 다른 파일로 바꿉니다.

분류에서Dev

Unix에서 동적 파일 이름을 사용하여 여러 파일을 다른 디렉토리로 이동하면서 이름을 바꿉니다.

분류에서Dev

파일 이름을 제거하고 증분으로 폴더 이름을 추가하는 이름 바꾸기 스크립트가 필요합니다.

분류에서Dev

Javacode를 사용하여 파일을 NAS로 이동하고 내 파일 이름을 바꿉니다.

분류에서Dev

새 이름에 폴더 이름의 일부를 사용하여 파일을 반복적으로 복사하고 이름을 바꿉니다.

분류에서Dev

파일에서 사용자 이름을 검색하고 사용자의 전화 번호를 출력합니다.

분류에서Dev

unix를 사용하여 파일에서 null을 ""test ""로 바꿉니다.

분류에서Dev

For 루프를 복사하여 폴더를 붙여 넣고 증분을 사용하여 이름을 바꿉니다.

분류에서Dev

한 파일의 사용자 이름을 다른 파일의 출력에서 사용자 이름과 회사로 바꿉니다.

분류에서Dev

정규식을 사용하여 파일 이름을 기반으로 파일을 이동하고 파일 이름의 하위 문자열에서 더 낮은 번호의 파일을 삭제합니다.

분류에서Dev

zip 파일에서 추출 된 파일의 이름을 zip 파일 자체의 이름으로 바꿉니다.

분류에서Dev

파일 그룹을 각 파일 안에 존재하는 문자열로 이름을 바꿉니다.

분류에서Dev

bash 스크립트를 사용하여 상수로 후행 번호를 늘려 여러 파일의 이름을 바꿉니다.

분류에서Dev

Linux 쉘에서 이름 바꾸기를 사용하지 않고 특수 문자를 제거하여 파일 이름을 일괄 적으로 바꾸는 방법

분류에서Dev

파일 이름에 공백이 포함 된 경우 디렉토리의 모든 .php 파일에서 로그인 문자열을 검색하고 바꿉니다.

분류에서Dev

공백을 삭제하고 루프를 통해 파일 이름에서 비 ASCII 문자를 makefile로 바꿉니다.

분류에서Dev

jquery에서 즉시 증분 양식을 만들고 삭제되면 다음 줄로 바꿉니다.

분류에서Dev

첫 번째 줄을 참조로 사용하여 모든 행에서 특정 문자 일치를 바꿉니다.

분류에서Dev

"rename"명령을 사용하여 확장명을 유지하면서 0으로 채워진 숫자로 파일 이름을 바꿉니다.

분류에서Dev

python urllib를 사용하여 파일을 다운로드하고 파일 유형에 따라 이름을 바꿉니다.

분류에서Dev

for 루프 파이썬을 사용하여 디렉토리에서 파일 이름을 바꿉니다.

분류에서Dev

문자에서 시작하고 다른 문자로 끝나는 텍스트 파일 내의 부분 문자열을 바꿉니다.

분류에서Dev

폴더의 모든 파일 이름을 바꾸고 PowerShell을 사용하여 이름을 creationTime으로 바꿉니다.

분류에서Dev

make를 사용하여 include 지시문을 다른 파일 이름으로 바꿉니다.

분류에서Dev

하나의 깊게 중첩 된 디렉터리에서 이름이 잘못된 파일을 복사하고 내용 주소 이름을 바꾼 다음 Bash 한 줄의 다른 평면화 된 하위 디렉터리로 이름을 바꿉니 까?

분류에서Dev

문자열을 분할하고 Discord 그림 이모티콘을 [이름]으로 바꿉니다.

분류에서Dev

배치 파일을 사용하여 모든 파일을 동일한 확장자로 순차적으로 이름을 바꿉니다.

분류에서Dev

perl을 사용하여 파일의 일부 문자열을 복잡한 암호로 바꿉니다.

Related 관련 기사

  1. 1

    우분투 명령 줄에서 각 파일을 매개 변수로 사용하여 파일 이름을 바꿉니다.

  2. 2

    BASH를 사용하여 특정 줄 번호 사이의 파일 내용을 다른 파일로 바꿉니다.

  3. 3

    Unix에서 동적 파일 이름을 사용하여 여러 파일을 다른 디렉토리로 이동하면서 이름을 바꿉니다.

  4. 4

    파일 이름을 제거하고 증분으로 폴더 이름을 추가하는 이름 바꾸기 스크립트가 필요합니다.

  5. 5

    Javacode를 사용하여 파일을 NAS로 이동하고 내 파일 이름을 바꿉니다.

  6. 6

    새 이름에 폴더 이름의 일부를 사용하여 파일을 반복적으로 복사하고 이름을 바꿉니다.

  7. 7

    파일에서 사용자 이름을 검색하고 사용자의 전화 번호를 출력합니다.

  8. 8

    unix를 사용하여 파일에서 null을 ""test ""로 바꿉니다.

  9. 9

    For 루프를 복사하여 폴더를 붙여 넣고 증분을 사용하여 이름을 바꿉니다.

  10. 10

    한 파일의 사용자 이름을 다른 파일의 출력에서 사용자 이름과 회사로 바꿉니다.

  11. 11

    정규식을 사용하여 파일 이름을 기반으로 파일을 이동하고 파일 이름의 하위 문자열에서 더 낮은 번호의 파일을 삭제합니다.

  12. 12

    zip 파일에서 추출 된 파일의 이름을 zip 파일 자체의 이름으로 바꿉니다.

  13. 13

    파일 그룹을 각 파일 안에 존재하는 문자열로 이름을 바꿉니다.

  14. 14

    bash 스크립트를 사용하여 상수로 후행 번호를 늘려 여러 파일의 이름을 바꿉니다.

  15. 15

    Linux 쉘에서 이름 바꾸기를 사용하지 않고 특수 문자를 제거하여 파일 이름을 일괄 적으로 바꾸는 방법

  16. 16

    파일 이름에 공백이 포함 된 경우 디렉토리의 모든 .php 파일에서 로그인 문자열을 검색하고 바꿉니다.

  17. 17

    공백을 삭제하고 루프를 통해 파일 이름에서 비 ASCII 문자를 makefile로 바꿉니다.

  18. 18

    jquery에서 즉시 증분 양식을 만들고 삭제되면 다음 줄로 바꿉니다.

  19. 19

    첫 번째 줄을 참조로 사용하여 모든 행에서 특정 문자 일치를 바꿉니다.

  20. 20

    "rename"명령을 사용하여 확장명을 유지하면서 0으로 채워진 숫자로 파일 이름을 바꿉니다.

  21. 21

    python urllib를 사용하여 파일을 다운로드하고 파일 유형에 따라 이름을 바꿉니다.

  22. 22

    for 루프 파이썬을 사용하여 디렉토리에서 파일 이름을 바꿉니다.

  23. 23

    문자에서 시작하고 다른 문자로 끝나는 텍스트 파일 내의 부분 문자열을 바꿉니다.

  24. 24

    폴더의 모든 파일 이름을 바꾸고 PowerShell을 사용하여 이름을 creationTime으로 바꿉니다.

  25. 25

    make를 사용하여 include 지시문을 다른 파일 이름으로 바꿉니다.

  26. 26

    하나의 깊게 중첩 된 디렉터리에서 이름이 잘못된 파일을 복사하고 내용 주소 이름을 바꾼 다음 Bash 한 줄의 다른 평면화 된 하위 디렉터리로 이름을 바꿉니 까?

  27. 27

    문자열을 분할하고 Discord 그림 이모티콘을 [이름]으로 바꿉니다.

  28. 28

    배치 파일을 사용하여 모든 파일을 동일한 확장자로 순차적으로 이름을 바꿉니다.

  29. 29

    perl을 사용하여 파일의 일부 문자열을 복잡한 암호로 바꿉니다.

뜨겁다태그

보관