次のように結果を印刷するコマンドをどのように設定できますか?
USER | PACKAGE | CREATOR
result - result - result
result - result - result
result - result - result
/usr/local/users/*/user.conf ファイルからこれらの結果を取得したいと思います。
さまざまなユーザーのためのファイルがあります。たとえば、次のようになります。
/usr/local/users/user1/user.conf
/usr/local/users/user2/user.conf
/usr/local/users/user3/user.conf
...
ファイルが多いので、表示内容を表にまとめる必要があるため、ワイルドカードを使用しています。
それが彼がコンテンツを取得する方法です。
username=test
package=basic
creator=admin
変数を取得しようとしてこの方法を試しましたが、コマンドを補完する方法がわかりません。
grep package /usr/local/users/*/user.conf
ベストアンサー1
別の変形:
awk -F'=' '
BEGIN{ print "USER | PACKAGE | CREATOR" }
$1=="username" || $1=="package" || $1=="creator"{
printf $2 (++cnt%3 ? " - " : RS)
}
' /usr/local/users/*/user.conf | column -t
編集する
これにより、テーブルがパッケージごとにソートされ、ファイル内の3つの要素が異なる順序で表示されることがありますuser.conf
。
{
echo "USER | PACKAGE | CREATOR"
awk -F'=' '
$1=="username"{ a[0]=$2 }
$1=="package" { a[1]=$2 }
$1=="creator" { a[2]=$2 }
0 in a && 1 in a && 2 in a{
print a[0] " - " a[1] " - " a[2]
delete a
}
' /usr/local/users/*/user.conf | sort -k3,3
} | column -t