/etc/passwd
名前付きデータベースからすべてのユーザー名を抽出して出力をアルファベットの逆順に並べ替えるには、どのコマンドを使用しますか?
答え1
cut -d: -f1 /etc/passwd | sort -r
または
awk -F: '{print $1}' /etc/passwd | sort -r
実際にnsswitchを使用するシステム(たとえば、ほとんどの(すべてではありませんが)Linuxディストリビューションや他の多くの* nix)を使用している場合は、他の可能なユーザーアカウントデータソースがたくさんあるので、読むだけではなくgetent passwd
使用する必要があります。/etc/passwd
(LDAPおよびnisまたはypを含む):
getent passwd | cut -d: -f1 | sort -r
getent passwd | awk -F: '{print $1}' | sort -r
答え2
ホームディレクトリが/ homeにある実際の人を一覧表示するには、次のようにリストをフィルタリングできます。
grep home /etc/passwd|cut -d: -f1
答え3
sed 's/:.*//' /etc/passwd | sort -r
sed
~であるSトレメ編集するitor は、テキスト編集コマンドをテキストデータストリームに適用するために使用されます。 sed
使用一般的な表現テキスト行内のパターンと一致します。 一般的な表現grep、awk、emacs、vi、perl、pythonなどの多くのUnix / Linuxコマンドに共通です。したがって、正規表現を学習すると、さまざまなコマンドを使用する能力が向上します。
上記のsedコマンドは、s
テキストの各行で機能を実行(交換)します。基本s
コマンドは次のように動作します。
`s/regular expression/replacement/`
sed
このコマンドの正規表現は、行の:.*
最初のコロン(存在する場合)と一致し、その後に行の(暗黙的な)末尾にゼロ個以上の*
他の文字()が続きます。これに一致するすべての項目を何もないものに置き換え、結果を印刷します。.
sed
つまり、このsedコマンドは、行を印刷する前に最初のコロンから行末まですべてを削除します。