gawk는 디렉토리의 여러 파일을 처리합니다.

gawk는 디렉토리의 여러 파일을 처리합니다.

폴더에 여러 개의 텍스트 파일이 있고 개별적으로 처리하는 대신 gawk를 통해 처리하고 싶습니다. 1개의 .txt 파일로 병합하지 않고 한 번에 모두 처리할 수 있나요?

스크립트 예 -

"C:\cygwin64\bin\gawk.exe" -F: 'FNR==NR{a[$1]=$2;next} $2 in a{print $1 FS a[$2]}' email.phone.txt username.email.txt > username.phone.txt

사용예 -

email.phone.txt - 다음을 포함합니다:

[email protected]:phoneexample

사용자 이름.email.txt - 포함:

user1:[email protected]
user131:[email protected]

예상 출력:

user1:phoneexample
user131:phoneexample

하지만 그들 중 한 명과도 거래하지 않습니다

email.phone.txt

이러한 항목으로 가득 찬 디렉터리를 처리할 수 있나요?

예 -

C:/directory/folder/example

포함하다:

file1.txt
file2.txt
file3.txt
...

답변1

그래서 당신은하나사용자 파일을 이메일에 매핑하고일부이메일을 전화에 매핑하는 파일입니다. 예, awk는 이것을 할 수 있습니다. user:phone 파일을 처리하면 됩니다.첫 번째

gawk -F: -v OFS=: '
    NR == FNR  {user[$2] = $1; next} 
    $1 in user {print user[$1], $2}
' user.email.txt email.* > user.phone.txt

관련 정보