1行に1語で出力形式を指定する方法

1行に1語で出力形式を指定する方法

私はLinuxシステムにログインし、すべての現在のユーザーを取得しようとしました。端末でコマンドを使用しましたが、users結果は「user1 user2 user3 user4」です。

ユーザー名の行を分割して各ユーザー名を1行に整理する方法はありますか?

答え1

users | tr -s ' ' '\n'

これはユーティリティの出力を取得し、usersすべてのスペースをnewlinesに置き換え、tr結果から複数の連続した改行文字を削除します(を使用して-s)。

パイプを介してsort -u一意のユーザー名を取得します。

答え2

より良い方法があるかもしれませんが、次のようになります。

for user in $(users); do echo "$user"; done

または、fmt次のコマンドを使用します。

users | fmt -w 1

答え3

パイプを使用しない最も簡単な解決策:

printf '%s\n' $(users)

答え4

~からhttps://stackoverflow.com/a/37843747/52074このソリューションには6つの表があります。

users | xargs -n 1

関連情報