特定の行に繰り返される文字列を含む複数のコンピューターに構成ファイルがあります。
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
(または)を使用しますか?uniqstr
List::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
内部作業用に追加できます。