コマンドウィンドウに表示されるテキストを別のテキストに置き換えることはできますか?

コマンドウィンドウに表示されるテキストを別のテキストに置き換えることはできますか?

ユーザーアカウントを管理しようとしています。デフォルトでは数字だけですが、画面にユーザーの姓が表示される方が良いです。表示されたテキストを他のコンテンツに自動的に置き換えることはできますか?

たとえば、に移動して/home/usersを入力すると、ls-al次の内容が表示されます。

Smith
Johnson
Adams
Andrews

変える

001 
002 
003 
004

それとも何とか両方を見ることができますか?

001 "Smith"
002 "Johnson"
003 "Adams"
004 "Andrews"

答え1

私が理解したことが正しい場合は、すべてのユーザーの名前を番号で指定し、ユーザーの姓を確認したいということです。

彼らの姓はどこに保存されていますか?つまり、名前と番号の間に関連付けを設定する必要があります。この情報のソースはどこですか?

lsNUMBER を LAST-NAME に関連付けるマスターリストがあると仮定すると、直接フロントエンドを設定できます。たとえば、

"usernames.list"ファイルがある場合:

001 Smith
002 Johnson
003 Adams
004 Andrews

lsその後、再実装しますが、リストと/homeで見つかったキーとの間に相関関係を持つループを作成できます。

for DIR in * ; do fgrep ${DIR} /path/to/usernames.list ; done

これにより、次のものが印刷されます。

001 Smith
002 Johnson
003 Adams
004 Andrews

ユーザーのリストがこれらのキーと値のペアよりも複雑な場合は、cutそれを使用して必要に応じて情報を解析できます。

参考までに、これはユーザーを管理する標準的な方法ではありません。

POSIXシステムのユーザーはすでに固有の識別子(ユーザーID、コマンドを参照id)を持っているため、すべてのユーザーの名前を001で徐々に開始することは確かに理想的ではありません。

関連情報