他のファイルに基づいてファイルの特定の文字列を編集します。

他のファイルに基づいてファイルの特定の文字列を編集します。

こんにちは。 users.txtというファイルがあります。たとえば、このファイルにはユーザーのリストがあります。

user1
user2
user3

「owner = user」という特定の文字列を持つ別の「search」というファイルがあります。

owner = user1
random text
random text
owner = user15
random text 
random text 
owner = user2

したがって、ユーザーファイルに基づいてすべてのユーザーを見つけ、これらのユーザーの名前を次のように変更できますか?[Eメール保護]?例えば

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ユーザーがファイルでその内容を見つけたら、付録を追加します。

おすすめ記事