grep /etc/passwdでユーザーリストを取得する

grep /etc/passwdでユーザーリストを取得する

宿題のために、すべてのユーザーリスト(ユーザー名のみを除く)をgrep解析してインポートする必要があります。パイプを使用し、結果はファイル/etc/passwdで終わる必要があります。allusersこれが私が今まで持っているものです:

grep -i etc/password | .... >allusers 

私は何を見逃していますか?

ベストアンサー1

ヒント

行の各フィールドは/etc/passwdコロンで区切られ、ユーザー名は最初のフィールドなので、最初のコロンの前の文字のみを表示するように各行をフィルタリングする必要があります。

回答

grepこれを行うのに最適なツールではありませんが、使用する必要がある場合は次のように動作します。

grep -oE '^[^:]+' /etc/passwd

-o行の一致部分のみを返すように指示します。後で使用できる-Eように拡張正規表現を有効にしてください。行の先頭に一致し、コロンを除くすべての項目に一致し、できるだけ多くの文字を表します。したがって、これは最初のコロンまで各行の先頭に一致します。+^[^:]+

このツール以外のツールにアクセスできる場合は、grep次の方法があります。

cut -d: -f1 /etc/passwd
sed 's/:.*//' /etc/passwd
awk -F: '{print $1}' /etc/passwd

これらのいずれかの結果は、次のようにallusersリダイレクト> allusersできます。

おすすめ記事