mdfindを使用して、指定されたファイルのテキストコンテンツを評価しますか?


1

特定のファイルに指定された文字列が含まれているかどうか(おそらくif ... thenステートメントの一部として)を評価するためのapplescriptを書きたいと思います。これを行うためにmdfindを使用してシェルコマンドを呼び出したいのですが、指定されたディレクトリ内でのみ指定された文字列を含むファイルを検索するようにmdfindを制限する方法を認識しています。

mdfind -onlyin /Users/viktor/Desktop/ nintendo

このコマンドは、文字列「nintendo」を含むすべてのファイルを検索します。ディレクトリではなくファイルを何らかの方法でクエリすることは可能ですか?そして、文字列がファイルのテキストコンテンツにあることを示すためにtrue / falseまたはファイル自体を返しますか?もちろん、「-onlyin」の後にファイル名を付けても機能しません...

回答:


1

また、単にgrepを使用することもできます。

grep -qFi nintendo file.txt && echo found

-q = quiet、-F =固定文字列(正規表現を無効にする)、-i =大文字と小文字を区別しません。

これは再帰的に検索し(-r)、一致するファイルの名前をリストします(-l):

grep -rlFi nintendo ~/Notes

mdfindを特定のメタデータ属性に制限することもできますが、この場合は実際には役に立ちません:

mdfind 'kMDItemTextContent="*nintendo*"i' -onlyin ~/Notes/

1

試してください:

set fileText to read POSIX file "/Users/John/Desktop/test.txt" as «class utf8»
fileText contains "nintendo"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.