你好,我有一个名为 users.txt 的文件。例如,在该文件中我有一个用户列表
user1
user2
user3
现在我有另一个名为“搜索”的文件,其中有一个名为“所有者 = 用户”的特定字符串
owner = user1
random text
random text
owner = user15
random text
random text
owner = user2
那么是否可以根据用户文件找到所有用户并将这些用户重命名为[电子邮件受保护]?例如
owner = [email protected]
random text
random text
owner = user15
random text
random text
owner = [email protected]
我使用 ack 命令和 cat 命令得到了一些工作,但我是编程新手,所以我无法获得正确的输出。我的想法如下,但它并没有真正满足我的需要。非常感谢任何帮助。
cat users | xargs -i sed 's/{}/moo/' searches
答案1
尝试 awk:
awk 'NR == FNR {SRCH[$1]; next} $NF in SRCH {$NF = $NF "@domain.com"} 1' users searches
owner = [email protected]
random text
random text
owner = user15
random text
random text
owner = [email protected]
users
如果用户在文件中找到,它会添加附录。
答案2
使用awk
:
awk '
NR==FNR{users[$0]=$0"@domain.com"}
NR>FNR && $1 == "owner" && $3 in users { $3=users[$3]; }
NR>FNR
' users searches
要直接编辑文件,请附加> searches.tmp && mv searches.tmp searches