1行にawk print $ 2、$ 3、$ 4で重複データを表示


0

次を含む2つのリストがある場合(例):

list1
x;00:26:82:50:00:00;192.168.1.195;COMPUTER1
x;00:26:82:50:11:11;192.168.1.195;COMPUTER2
x;00:26:82:50:22:22;192.168.1.196;COMPUTER3

list2
x;00:26:82:50:11:11;192.168.1.197;COMPUTER3

このコマンドを実行すると、重複が表示されます:

awk -F\; '{print $2}' list* | sort | uniq -d
out: 00:26:82:50:11:11
awk -F\; '{print $3}' list* | sort | uniq -d
out: 192.168.1.195
awk -F\; '{print $4}' list* | sort | uniq -d
out: COMPUTER3

私の質問は:

コマンド(awk -F \; .. etc)を1行で起動して同じ結果を得るにはどうすればよいですか?

PD:&&なし

ありがとう

回答:


1

次のように、awk(1)の代わりにcut(1)を使用して、コマンドラインから簡単なスクリプトでこれを実行できます。

$ for field in 2 3 4; do cut -d\; -f${field} list* | sort | uniq -d; done

これについては別の手がかりがあります。でsuperuser.com/questions/1199802/...
ajcg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.