私は走っています
rpm -Vqf
各種システムファイルが正しいことを確認してください。以下はサンプル出力です。
S.5....T. c /etc/enviro
missing /var/run/abrt
file /etc/bluetooth is not owned by any package
ファイルのフルパスを表示できるように、出力は次のようになります。権限が/ownr/checksum...
正しいか、欠落しているか、パッケージの一部ではありませんか?
/etc/enviro|S.5....T.
/var/run/abrt|missing
/etc/bluetooth|not owned
ずっと見守ったが、awk
その妥当性を置くことができなかった。
答え1
出力が次のようになるとします。いつも提供された3つの例に示すように、次のことが機能します。
rpm -Vqf <arguments> | awk '/(\/[^/ ]+)+$/ {printf("%s|%s\n",$NF,$1);next} /is not owned/{printf("%s|not owned\n",$2)}'
この呼び出しはawk
次のことを行います。
- 行終わるファイルパスである最後のレコード(=スペースで区切られた文字列)を印刷するには、絶対ファイルパス(たとえば、aの
/
後に「スラッシュ以外の文字」(空白なし)が複数あり、パターンが繰り返される可能性があります)を使用します。その後、最初の記録が出ます。次に、実行のために次の入力ラインにジャンプします(そうでない場合は、同じ入力ラインに対して複数の出力を取得できます)。printf
|
- 行に「未所有」という文字列が含まれている場合は、2番目のレコード(ファイルパスなど)を印刷します。出力が常に読み取られると仮定
file <name> is not owned ...
) の後に固定文字列 "notowned" が続きます。