から/etc/passwd
、「ユーザー」の部分だけが必要です。
例:
backup:x:34:34:backup:/var/backups:/bin/sh
ユーザーとして持っbackup
ています。
私が今これを使用しているユーザー部分を抽出するために:
perl -pe 's/^(.*?):.*/\1/g' < /etc/passwd
これは私の古い方法よりも数文字少ないです:
while read line; do echo ${line%%:*}; done < /etc/passwd
しかし、それはやり過ぎのように聞こえます。書くべきテキストはたくさんあります。
グーグル検索は私に与えます:
awk -F ':' '{print $1}' < /etc/passwd
これは同等だと思いますか?それは...ですか?
cmp <(perl -pe 's/^(.*?):.*/\1/g' < /etc/passwd) <(awk -F ':' '{print $1}' < /etc/passwd)
これを行うための標準のUNIXツールまたはperlを使用したより簡単な方法はありますか?またはcut
?
私は初心者です。
ところで、私は次のようにPythonで手を試しましたが、私はそれを吸います、Pythonでこれを行うためのより良い方法があるかもしれません:(
python -c 'print "\n".join([u[:u.find(":")] for u in open("/etc/passwd")])'
編集:実際には、Pythonの場合はおそらくこのようになります:
python -c 'print "\n".join([u.split(":")[0] for u in open("/etc/passwd")])'
うーん...まだ非常に冗長です。