特定の行から重複文字列を削除する

特定の行から重複文字列を削除する

特定の行に繰り返される文字列を含む複数のコンピューターに構成ファイルがあります。

Option1 value
Option2 value
Option3 value
# Option X value
# commentary lines
... 
AllowList user1@ip1 user1@ip2 user2@ip3 user2@ip4 user1@ip1 user1@ip2 user2@ip3 user2@ip4 ... 
...
Option Z value

行にAllowList重複した値があります。どのように削除しますか?

重複した値を削除する方法は既にわかっています。

grep AllowList myconfig | tr ' ' '\n' | sort | uniq | xargs

しかし、他の行はそのまま維持しながらこれを行いたいと思います。

ベストアンサー1

Perlはどうですか?でuniq(または)を使用しますか?uniqstrList::util

$ perl -MList::Util=uniq -alpe '$_ = join " ", uniq @F if $F[0] eq "AllowList"' myconfig
Option1 value
Option2 value
Option3 value
# Option X value
# commentary lines
...
AllowList user1@ip1 user1@ip2 user2@ip3 user2@ip4 ...
...
Option Z value

-i内部作業用に追加できます。

おすすめ記事