我在一个文件夹中有多个文本文件,我想通过 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
username.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