最近、Windows開発環境からApple開発環境に切り替えました。この移行は困難なプロセスでしたが、Windowsコマンドプロンプトで日常的に使用しているコマンドを補うために、ターミナルでUNIXベースのコマンドを取得するのに苦労しています。UNIXコマンドを理解しようとしているので、提供されたコマンドで何が起こっているのかについての基本的なレベルの説明は私にとって大きなボーナスですが、man
ualを読むことは外国語を読むようなものですほとんどの場合私。
私の質問は次のとおりです。次のWindowsCMDコマンドと非常によく似た出力を模倣または生成するために実行できる、できれば覚えるのに十分短い1行のコマンドはありますか。
findstr /s /c:"this piece of text" *.code
私はWindowsでこのコマンドを頻繁に使用して、引用符の間のテキストがサブディレクトリの*.codeパターンに一致するファイルのどこにあるかを示す結果セットを生成します。これを使用して、サーバーからプルバックされた多数のファイルのバージョン番号を確認し、大規模なプロジェクトで変数が宣言された場所を探すことができます。出力は次の形式で提供されます。
file1.code: other text this piece of text other text
file2.code: other text this piece of text other text
file3.code: other text this piece of text other text
file4.code: other text this piece of text other text
file5.code: other text this piece of text other text
他のテキストは、指定されたファイルの検索文字列と同じ行にある他のテキストです。ここで質問を検索したところfind . -name *.code
、サブディレクトリ内のファイルのリストを作成するために使用している人が何人か見つかりました。次に、シーケンスと組み合わせ-exec
たコマンドのフラグを使用してテキストを検索します。私はこれを前述のいくつかの方法で試しましたが、失敗しました。エスケープシーケンスまたは文字の欠落が原因だと思います。そのまま検索した引用符の間に文字列をコマンドに与える方法があれば素晴らしいでしょう。find
grep
次のことを試しましたが、結果が得られませんでした...構文エラーでしょうか?
find . -exec grep -H .getItemToChange().getItemAttributes()
更新 正しいコードは、ジョンによる素晴らしい説明とともに以下に提供されています。これがあなたの好きなように役立つなら、私は彼の答えに賛成票を投じるのに役立ちました!
大規模なプロジェクトで、この関数呼び出しを含む.javaファイルを見つけたいと思っていました。結果は得られず、*。javaのみにフィルタリングする方法もありませんでした。
誰かがここで私を助けることができますか?コマンドの説明は大歓迎です。