Bashスクリプトにおけるls -lのパイプライン結果

Bashスクリプトにおけるls -lのパイプライン結果

だから私は以下を使用しました。

getent passwd $2 | awk -F: '{print "|Username: " $1 "\n|Password: " $2 "\n|Uid: " $3 "\n|Gid: " $4 "\n|Comment: " $5 "\n|Home: " $6 "\n|Shell: " $7 "\n"}'

ユーザー情報をきれいなリストに入力してください。

フォルダでも同じことをしたいです。私は "ls -l"コマンドのすべての情報を望んでいますが、それがテストブロックのように表示されるのではなく、1つずつ一覧表示されることを望みます。

awkでコマンドを使用できますかls?以前に使用した方法をそのまま使用できますか?

答え1

Linuxを使用しているので、stat正しい形式(-c、、--format)でコマンドを見てください。よく知られていない機能であるこの形式はCスタイルの長さ指定子を受け入れるので、たとえば試してみてください。

stat -c 'File: %-40n Size: %6s Flags: %8A' * 

任意の文字列を形式に入れることができ、改行文字も含めることができます(構文を使用$'string')。

stat -c $'--------------\nFile:     %n\nSize:     %s\nFlags:    %A' /boot/*
--------------
File:     /boot/abi-4.13.0-45-generic
Size:     1501528
Flags:    -rw-r--r--
--------------
File:     /boot/config-4.13.0-45-generic
Size:     213220
Flags:    -rw-r--r--
--------------
File:     /boot/config-4.15.0-72-generic
Size:     217468
Flags:    -rw-r--r--
--------------
File:     /boot/config-4.15.0-74-generic
Size:     217503
Flags:    -rw-r--r--
--------------
File:     /boot/config-4.15.0-76-generic
Size:     217503
Flags:    -rw-r--r--

関連情報