bash findコマンドを使用するのに少し難しいことがあります。
問題は、* .appstrngを含む* .appファイルからすべてのレコードを削除する要求が遅くなったことです。
以下は、レコードを削除しようとする否定的な試みなしに完全に実行される最初のルックアップパイプラインです。
find . -type f -iname "*.app" -exec grep -we selected_apps -e app_name --color=auto --with-filename {} \; > LOG.txt
これで、LOG.txtを生成する前に.appstringストリッピングを追加しようとするいくつかの試みがあります。
1) grep -vを使う
find . -type f -iname "*.app" -exec grep -we selected_apps -e app_name -ev "*.appstring" --color=auto --with-filename {} \; > LOG.txt
2) awkを使う
find . -type f -iname "*.app" -exec grep -we selected_apps --color=auto --with-filename {} \; | awk '!/*.appstring/' > LOG.txt
find / grepまたはfind / awkがこのように動作するかどうかわかりません...すべてのコメントを歓迎します!ありがとうございます! !
答え1
元のコマンドを使用し、追加のコマンドを使用していくつかの結果を削除できます。
cat LOG.txt | while read FILE; do
if ! grep -q "*.appstring" "$FILE"; then
echo $FILE >> LOG-filtered.txt
fi
done