Xargs
基於另一個文件編輯文件中的特定字元串
您好,我有一個名為 users 的文件。例如,在該文件中,我有一個使用者列表
user1 user2 user3
現在我有另一個名為 search 的文件,其中有一個名為 owner = user 的特定字元串,例如
owner = user1 random text random text owner = user15 random text random text owner = user2
那麼是否可以根據使用者文件找到所有使用者並將這些使用者重命名為 user@domain.com ?例如
owner = user1@domain.com random text random text owner = user15 random text random text owner = user2@domain.com
我使用 ack 命令和 cat 命令得到了一些零碎的東西,但我是程式新手,所以我無法獲得正確的輸出。我想出的是下面,但它並沒有真正做我需要的。非常感謝任何幫助。
cat users | xargs -i sed 's/{}/moo/' searches
試試 awk:
awk 'NR == FNR {SRCH[$1]; next} $NF in SRCH {$NF = $NF "@domain.com"} 1' users searches owner = user1@domain.com random text random text owner = user15 random text random text owner = user2@domain.com
如果使用者在
users
文件中找到它,它會添加附錄。
使用
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