git grep --all-match -e NODE -e Unexpected. Linuxでよく使用するファイル内テキスト検索コマンド「grep」。Windowsでも使えたら便利なのですが、残念ながらWindowsにgrepコマンドはありません。その代わりgrepコマンドの代わりになるコマンドが存在しているのでそちらを紹介していきます。 git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \) Looks for a line that has #define and either MAX_PATH or PATH_MAX. - Stack Overflow, 合ってる!勝利! 検索をかけてマッチした行だけでなく、直前の行も同時に表示させたい場合の紹介です。 Looks for solution, excluding files in Documentation. 質問からヒントを得る なぜwcユーティリティは "total"で複数の行を生成するのですか? 、この問題を回避するために次のコマンドを見つけました。 リンク先のワンライナーでコミット数は正確に計れるのですが、総追加行数と総削除行数がなにかおかしい。 なぜか総追加行数が非常に多く計算されていました。 というわけで原因を調べてみました。 原因1. コミッターや期間を指定したい場合は--author、--since、--untilオプションを使えばokですね。, koyamayさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog 2020年11月; 2020年10月; 2020年8月; 2020年7月; 2020年6 … 1ファイルのみの変更の時にgrepがスルーされる. 多数のファイルを扱うときにgit ls-files | xargs wc -lでバッチ処理の問題に遭遇しました。そこでは行数が複数のtotal行にまとめられます。. git ls-filesは私にgitによって追跡されたファイルのリストを与えます。, これは空のツリーと現在の作業ツリーとの違いを示しています。これはあなたの現在の作業ツリーのすべての行を数えるために起こります。, それはあなたに1770 files changed, 166776 insertions(+)のような文字列を与えるでしょう。, プロジェクトの範囲を把握したいためにこのカウントが必要な場合は、 _ cloc _ (“ Count Lines of Code”)の出力をお勧めします。言語によるコード行。, (この行はgit ls-files | xargs clocと同等です。これはshを使用します $()コマンド置換 feature。), まずCLOCをインストールする必要があります。あなたはおそらく あなたのパッケージマネージャでclocをインストールすることができます - 例えば Homebrew を付けたbrew install cloc。, cloc $(git ls-files)はcloc .を改良したものです。たとえば、上記のgit ls-filesの出力例では、471行のコードがレポートされています。同じプロジェクトの場合、cloc .はGit-ignored node_modulesフォルダー内の依存関係を検索するため、なんと456,279行(実行に6分かかります)報告します。, 多数のファイルを扱うときにgit ls-files | xargs wc -lでバッチ処理の問題に遭遇しました。そこでは行数が複数のtotal行にまとめられます。, 質問からヒントを得る なぜwcユーティリティは "total"で複数の行を生成するのですか? 、この問題を回避するために次のコマンドを見つけました。, とにかく、最善の解決策は@ ephemientの答えのコメントに埋め込まれています。見過ごさないように、ここで引き上げているだけです。これに対する功績は@FRoZeN(そして@ephemient)に行くべきです。, 追加のノイズなしで、リポジトリの作業ディレクトリ内のファイルと行の合計を返します。ボーナスとして、ソースコードだけが数えられます - バイナリファイルは集計から除外されます。, 上記のコマンドはLinuxとOS Xで動作します。クロスプラットフォーム版は次のとおりです。, 私はcmder( http://gooseberrycreative.com/cmder/ )で遊んでいて、html、css、Java、およびjavascriptの行を数えたいと思っていましたが、grepのorパターンはうまくいきました。しなかった - 私はそれをエスケープしなければならなかったことをここに見つけた( https://unix.stackexchange.com/questions/37313/how-do-i-grep-for-multiple-patterns ), git ls-files | grep "\(.html\|.css\|.js\|.Java\)$" | xargs wc -l, これは、gitによってバージョン管理されているすべてのファイルで正規表現^を検索します。これは行の始まりを表しているので、このコマンドは合計行数を示します。, Github上のこのツール https://github.com/flosse/sloc は、より説明的な方法で出力を提供できます。それはあなたのソースコードの統計を作成します。, これは、リポジトリ内のすべてのテキストファイルを目的のファイルとして数えた場合に機能します。ドキュメントなどと見なされるものがある場合は、除外フィルタを追加できます。, GitでShellコマンドを実行するときに使用するプライベートSSHキーを指定する方法, Content dated before 2011-04-08 (UTC) is licensed under, https://unix.stackexchange.com/questions/37313/how-do-i-grep-for-multiple-patterns.

Looks for a line that has NODE or Unexpected in files that have lines that match both. もちろん使い方は人それぞれあると思いますので、あくまでご参考ということでよろしくお願いします。, grepを使う時は、再帰的にあるディレクトリ以下全体を検索する場合もあると思います。 [MAC]gnuplotでlibreadlineがdyld: Library not loadedのエラー. git ls-files | xargs wc -l多数のファイルを処理するときにバッチ処理の問題が発生しました。この場合、行数が複数のtotal行に分割されます。. gitで指定期間のコミット回数や総追加行数などを取得するワンライナー - Qiita, リンク先のワンライナーでコミット数は正確に計れるのですが、総追加行数と総削除行数がなにかおかしい。なぜか総追加行数が非常に多く計算されていました。, どうも--shortstatオプションを使用する場合、insertionsやdeletionsが0の場合に省略されるようです。, なのでどうやらQiitaに投稿されていらっしゃるお方のワンライナーでは、insertionsが0(省略される)、deletionsがあった場合にもinsertionsとしてカウントされるようです。畜生shortstat。, というわけでどうすれば上手くいくのか調べると、--numstatオプションを使うといいという情報がでてきました。, 1番目の数値が追加行数、2番目の数値が削除行数です。0のときも省略されず出力されているのが確認できます。, How can I calculate the number of lines changed between two commits in git? (adsbygoogle = window.adsbygoogle || []).push({}); Copyright (C) 2020 ITを使っていこう All Rights Reserved. ブログを報告する, NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}, 第41回 Pythonもくもく会 TensorFlow Object Detection API メモ. grep -B 行数 検索文字列 検索対象文字列 . サンプルコード ... git; gnuplot; grep; JavaScript; ls; Mac; mkdir; mv; nkf; PC; Python; sed; touch; tree; xargs; xxd; シェル ; ターミナル; データ構造; プログラミング学習; メモ; 整理術; 書籍; 正規表現; アーカイブ. その場合は例えば下記のように、-rオプションでカレントディレクトリを指定することもできます。 直後の行を表示したい場合は下記を参考にして頂ければと思います。 あとは、関数定義の前に関数の説明をコメントしている場合は、それらを確認するのにも便利です。 NOTES ON THREADS. 質問からヒントを得るなぜwcユーティリティは「合計」で複数の行を生成するのですか? 、問題を回避する次のコマンドを見つけました。 | カレントディレクトリ以下を再帰的に検索して、"kensaku"とマッチした行と、マッチした直前の2行を同時表示する書き方になります。 git grep solution -- :^Documentation. この使い方も便利なので重宝しています。. [Linux]grep実行時索された直後の行も同時に表示する方法, 文字列kensakuをキーワードに検索して、マッチした行とマッチした行の直前の2行を同時に表示したい場合には、下記のようにコマンドを実行します。, 実行すると、文字列kensakuを含む行と、直前の2行が表示されているのが確認できます。, 例えば、関数の呼び出し元を検索したい場合などは、直前の行も表示することで、呼び出し方をある程度把握できる場合があるかと思います。 上期も終わり開発中のgitリポジトリの情報を採取して遊んでいました。Qiitaでコミット数や総追加行数、総削除行数を取得するワンライナーについての投稿があり活用させて頂いています。ありがたい...!