Macのユーザーやパッケージ等のシステム情報を指定のテキストファイルで検索

2022.09.01
  • t_o_dと申します。
  • Macではユーザーやパッケージ等のシステム情報を取得できる様々な標準コマンドが存在します。
  • それらの情報を指定のテキストファイルから検索や抽出が出来ると便利だと思いました。
  • 今回は自身のPCの「ユーザー・アプリケーション・パッケージ」の3つの一覧情報を取得・検索する方法を記録いたします。

環境

  • mac OS Monterey 12.2

ユーザー情報の取得

  • まず、ユーザー情報の一覧を取得するには以下のようにdsclコマンドを利用します。
dscl . list /Users

# 結果
_accessoryupdater
_amavisd
************
  • 次に検索するために、以下の内容のテキストファイルを作成します。
    • ※例ではusers.txt
    • xxx.xxxxxには存在しないユーザー名を指定してください。
Administrator
xxx.xxxxx
  • 作成後、以下のスクリプトをターミナルに貼り付けて実行してください。
cat users.txt | awk -v userfile=<(dscl . list /Users) '
BEGIN{
    while((getline < userfile) > 0){
        users[$1]=NR
    }
}
!($1 in users){
    print $1"が存在しません。"
}
'
  • 結果が以下のようになることを確認します。
    • 全て存在する場合は何も出力されません。
xxx.xxxxxが存在しません

アプリケーションチェック

  • まず、アプリケーション情報の一覧を取得するには以下のようにsystem_profilerコマンドを利用します。
system_profiler SPApplicationsDataType | grep -E ".+\.app" | awk -F '/' '{print $NF}'

# 結果
************
Music.app
Notes.app
Photo Booth.app
************
  • 次に検索するために、以下の内容のテキストファイルを作成します。
    • ※例ではapps.txt
    • xxxxx.appには存在しないアプリケーション名を指定してください。
Music.app
Notes.app
xxxxx.app
  • 作成後、以下のスクリプトをターミナルに貼り付けて実行してください。
cat apps.txt | awk -F '/' -v appsfile=<(system_profiler SPApplicationsDataType | grep -E ".+\.app" | awk -F '/' '{print $NF}') '
BEGIN{
    while((getline < appsfile) > 0){
        apps[$1]=NR
    }
}
!($1 in apps){
    print $1"が存在しません。"
}
'
  • 結果が以下のようになることを確認します。
    • 全て存在する場合は何も出力されません。
xxxxx.appが存在しません

パッケージチェック

  • まず、パッケージ情報の一覧を取得するには以下のようにpkgutilコマンドを利用します。
pkgutil --pkgs

# 結果
************
com.apple.pkg.*******
com.apple.pkg.*******
************
  • 次に検索するために、以下の内容のテキストファイルを作成します。
    • ※例ではpackages.txt
    • xxxxx.pkgには存在しないパッケージ名を指定してください。
com.google.Chrome
xxxxx.pkg
  • 作成後、以下のスクリプトをターミナルに貼り付けて実行してください。
cat packages.txt | awk -v pkgfile=<(pkgutil --pkgs) '
BEGIN{
    while((getline < pkgfile) > 0)pkgs[$1]=1
}
!($1 in pkgs){
    print $1"が存在しません。"
}
'
  • 結果が以下のようになることを確認します。
    • 全て存在する場合は何も出力されません。
xxxxx.pkgが存在しません。

まとめ

  • 上記で紹介したもの以外にも様々な標準コマンドがMacには備わっています。
  • これらを適宜利用していくことで効率的な情報の収集や分析に役立てていきます。

参考

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。