私は最初のフィールドは、私は、ファイルに以下の行を持っているIPv4のaddress.Forの一例である重複行を削除するためのソリューションが必要になります。のsed/awkの+正規表現重複行の最初のフィールドが一致した(IPアドレス)を削除
192.168.0.1/text1/text2
192.168.0.18/text03/text7
192.168.0.15/sometext/sometext
192.168.0.1/text100/ntext
192.168.0.23/othertext/sometext
を
これまでのシナリオで一致したのはすべてIPアドレスです。私が知る限り、IPアドレスの正規表現は次のとおりです。
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
解決策が1行で、できるだけ速いのは良いことです。
awk '!x[$1]++' FS="/" $PATH_TO_FILE
EDIT:
読者、「重複」とはどういう意味ですか?つまり、IPアドレスの一致について特に言及しているので、IPアドレスごとに1行しか保持しないように見えます。これは正しいです?もしそうでなければ、@ jcolladoのように、あなたはsortを使うべきです。 – ArjunShankar
@ArjunShankar $ 1がIPアドレスである場合に限り、彼は重複した行を削除したいと思うかもしれないと思います。 "abcdefg"のような2つの(+)行がある場合、それらは削除されません。これは私の推測です。 – Kent
@Kent:あなたは正しいかもしれません。私たちの混乱は基本的に発生します。例の*すべての*行はIPアドレスです。*一致するIP以外は実際の重複はありません。 – ArjunShankar