그래서 현재 나는 이 스크립트를 가지고 있습니다
gawk -F: '
FNR==NR{a[$1][$2]=1;next}
$2 in a{for(i in a[$2]) print $1 FS i}
' email.phone.txt name.email.txt
이메일.전화 콘텐츠 예:
[email protected]:012345
[email protected]:912345
name.email.txt 예:
Charles:[email protected]
Erica:[email protected]
이것은 출력됩니다
Charles:012345
Charles:912345
Erica:012345
Erica:912345
보시다시피 현재 2개의 파일을 검사하고 email.phone.txt
첫 번째 열을 두 번째 열과 name.email.txt
일치시킵니다 . 일치하면 name.email.txt
첫 번째 email.phone.txt
열과 두 번째 열이 출력되어 :
구분 기호로 사용됩니다.
문자열의 일부를 일치시키려면 어떻게 해야 합니까?
이와 같이,
이메일.전화 콘텐츠 예:
[email protected]:012345
name.email.txt 예:
Charles:Email@gm
이제 예상되는 출력은 다음과 같습니다.
Charles:012345
Charles:912345
답변1
한 가지 해결책은 독서입니다.이메일그런 다음 정규 표현식이 일치합니다.전화 번호즉각적인:
$ cat email.txt
Charles:Charles@gm
Erica:[email protected]
$ cat tele.txt
[email protected]:012345
[email protected]:912345
$ awk -F ':' 'NR==FNR{ em[$1]=$2 } NR!=FNR{ for(i in em){
if( $1 ~ em[i] ){ print i":"$2 } } }' email.txt tele.txt
Charles:012345
Erica:912345