awkにファイルがあるかどうかを確認する方法は? [-d 'ファイル名'] 失敗

awkにファイルがあるかどうかを確認する方法は? [-d 'ファイル名'] 失敗

ホームディレクトリセットが存在しないユーザーのリストを作成しようとしています。 awkでこれを行うことができるようですが、構文に問題があります。

] に「間違った構文」というメッセージが表示され続けます。私は何が間違っていましたか?

awk -F: '{ if(![ -d "$6"]){ print $1 " " $3 " " $7}}' /etc/passwd

私が使用する最後のコードは次のとおりです。

awk -F: '{if(system( "[ -d " $6 " ]") == 1 && $7 != "/sbin/nologin" ) {print "The directory " $6 " does not exist for user " $1 }}' /etc/passwd

私は持っています関連する質問があります。

ベストアンサー1

使用できる

システム(命令語)
    オペレーティングシステムコマンドの実行注文するそれから
    awkプログラムに戻ります。返品注文する終了ステータス。 

たとえば、

awk -F: '{if(system("[ ! -d " $6 " ]") == 0) {print $1 " " $3 " " $7}}' /etc/passwd

おすすめ記事