なぜユニークなシェルリストを取得できないのですか? [コピー]

なぜユニークなシェルリストを取得できないのですか? [コピー]

私のシステムの一意のシェルリストを取得しようとしています。このコマンドを実行するとき:

cat /etc/passwd | cut -d ':' -f 7 | uniq

私は得る:

/bin/bash  
/bin/sync  
/sbin/shutdown  
/sbin/halt  
/bin/bash

uniqなぜ私が望むようにならないのか理解できません。私が理解していないものは何ですか?

この出力を取得してコピーを作成し、/bin/bashコピーの行の1つを別の行に置き換えてからファイルを試しましたが、diff出力がないため、隠された文字ではないようです。

ベストアンサー1

uniqこれは男性が働く方法によるものです。

注:「uniq」は重複行を検出しません。隣接しない異常。最初に入力をソートするか、「uniq」なしで「sort -u」を使用できます。

したがって、使用する方が良いので、以下は必要ありませんcat

$ cut -d ':' -f 7 /etc/passwd | sort -u
/bin/bash
/bin/false
/bin/sync
/usr/sbin/nologin

またはコマンド

 awk -F: '{ print $7 | "sort -u" }' /etc/passwd

@小さなジャロ提案:

awk -F: '!s[$7]++{print $7}' /etc/passwd

おすすめ記事