폴더에 여러 개의 텍스트 파일이 있고 개별적으로 처리하는 대신 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