您好,我有一個名為 users 的檔案。例如,在該檔案中,我有一個用戶串列
user1 user2 user3
現在我有另一個名為 search 的檔案,其中有一個名為 owner = user 的特定字串,例如
owner = user1
random text
random text
owner = user15
random text
random text
owner = user2
那么是否可以根據用戶檔案找到所有用戶并將這些用戶重命名為 [email protected] ?例如
owner = [email protected]
random text
random text
owner = user15
random text
random text
owner = [email protected]
目前我正在做的是漫長的手動程序,如下所示
awk '/owner = user1|owner = user2|owner = user3/{print $0 "@domain.com"; next}1' file
它確實有效,但對于大檔案,我必須花費很長時間來創建這個命令。
uj5u.com熱心網友回復:
鑒于:
$ head users owners
==> users <==
user1 user2 user3
==> owners <==
owner = user1
random text
random text
owner = user15
random text
random text
owner = user2
你可以使用這個 awk:
awk 'BEGIN{FS="[ \t]*=[ \t]*|[ \t] "}
FNR==NR{for (i=1;i<=NF;i ) seen[$i]; next}
/^owner[ \t]*=/ && $2 in seen{sub($2, $2 "@domain.com") } 1' users owners
印刷:
owner = [email protected]
random text
random text
owner = user15
random text
random text
owner = [email protected]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447085.html
