this is a 3-arg function that lets you find files that contain a string.
it prints out the filename, followed by the matching lines with line numbers.
it’s defined in my .bashrc
file as:
find2g() {
find $1 -name "$2" -exec grep -l "$3" {} \; -exec grep -n "$3" {} \;
}
example:
~> find2g github/stan-dev/cmdstan/stan/src/stan/lang/ "*.[ch]pp" logical
github/stan-dev/cmdstan/stan/src/stan/lang//ast/sigs/function_signatures_def.hpp
266: || name == "logical_negation";
296: if (name == "logical_negation") return "!";
github/stan-dev/cmdstan/stan/src/stan/lang//generator/expression_visgen.hpp
189: if (fx.name_ == "logical_or" || fx.name_ == "logical_and") {
192: o_ << ") " << ((fx.name_ == "logical_or") ? "||" : "&&")
github/stan-dev/cmdstan/stan/src/stan/lang//grammars/expression_grammar_def.hpp
57: [binary_op_f(_val, _1, "||", "logical_or",
65: [binary_op_f(_val, _1, "&&", "logical_and",
73: [binary_op_f(_val, _1, "==", "logical_eq",
78: [binary_op_f(_val, _1, "!=", "logical_neq",
86: [binary_op_f(_val, _1, "<", "logical_lte",
90: [binary_op_f(_val, _1, "<=", "logical_lt",
94: [binary_op_f(_val, _1, ">", "logical_gte",
98: [binary_op_f(_val, _1, ">=", "logical_gt",
github/stan-dev/cmdstan/stan/src/stan/lang//grammars/semantic_actions.hpp
653: struct logical_negate_expr : public phoenix_functor_ternary {
657: extern boost::phoenix::function<logical_negate_expr> logical_negate_expr_f;
github/stan-dev/cmdstan/stan/src/stan/lang//grammars/semantic_actions_def.cpp
1219: << " if you see an outer function logical_lt (<)"
1951: void logical_negate_expr::operator()(expression& expr_result,
1955: error_msgs << "logical negation operator !"
1961: fun f("logical_negation", args);
1965: boost::phoenix::function<logical_negate_expr> logical_negate_expr_f;
github/stan-dev/cmdstan/stan/src/stan/lang//grammars/term_grammar_def.hpp
126: [logical_negate_expr_f(_val, _1,
~> find2g github/stan-dev/cmdstan/stan/src/stan/lang "*.[ch]pp" logical
github/stan-dev/cmdstan/stan/src/stan/lang/ast/sigs/function_signatures_def.hpp
266: || name == "logical_negation";
296: if (name == "logical_negation") return "!";
github/stan-dev/cmdstan/stan/src/stan/lang/generator/expression_visgen.hpp
189: if (fx.name_ == "logical_or" || fx.name_ == "logical_and") {
192: o_ << ") " << ((fx.name_ == "logical_or") ? "||" : "&&")
github/stan-dev/cmdstan/stan/src/stan/lang/grammars/expression_grammar_def.hpp
57: [binary_op_f(_val, _1, "||", "logical_or",
65: [binary_op_f(_val, _1, "&&", "logical_and",
73: [binary_op_f(_val, _1, "==", "logical_eq",
78: [binary_op_f(_val, _1, "!=", "logical_neq",
86: [binary_op_f(_val, _1, "<", "logical_lte",
90: [binary_op_f(_val, _1, "<=", "logical_lt",
94: [binary_op_f(_val, _1, ">", "logical_gte",
98: [binary_op_f(_val, _1, ">=", "logical_gt",
github/stan-dev/cmdstan/stan/src/stan/lang/grammars/semantic_actions.hpp
653: struct logical_negate_expr : public phoenix_functor_ternary {
657: extern boost::phoenix::function<logical_negate_expr> logical_negate_expr_f;
github/stan-dev/cmdstan/stan/src/stan/lang/grammars/semantic_actions_def.cpp
1219: << " if you see an outer function logical_lt (<)"
1951: void logical_negate_expr::operator()(expression& expr_result,
1955: error_msgs << "logical negation operator !"
1961: fun f("logical_negation", args);
1965: boost::phoenix::function<logical_negate_expr> logical_negate_expr_f;
github/stan-dev/cmdstan/stan/src/stan/lang/grammars/term_grammar_def.hpp
126: [logical_negate_expr_f(_val, _1,
~>