如何使用完整路径或文件名显示grep结果

时间:2012-12-14 08:55:42

标签: linux

我需要知道grep时的完整文件路径。

我使用

之类的命令
cat *.log | grep somethingtosearch

现在我需要用完整的文件路径显示结果,从中取出匹配的结果。

帮助任何人?

9 个答案:

答案 0 :(得分:18)

您是否尝试使用-l标志?

grep -l somethingtosearch

这将只返回找到搜索的路径和文件名,而不是返回匹配的整行。

使用-r标志进行递归。

答案 1 :(得分:13)

假设您有两个日志文件:

  • C:/temp/my.log
  • C:/temp/alsoMy.log

cd到C:并使用:

grep -r somethingtosearch temp/*.log

它将为您提供如下列表:

temp/my.log:somethingtosearch
temp/alsoMy.log:somethingtosearch1
temp/alsoMy.log:somethingtosearch2

答案 2 :(得分:5)

如果您想查看完整路径,我建议cd到顶部目录(如果使用Windows,则为您的驱动器)

cd C:\
grep -r somethingtosearch C:\Users\Ozzesh\temp

或者在Linux上:

cd /
grep -r somethingtosearch ~/temp

如果你真的不赞成你的文件名过滤(* .log)而你想要recursive(文件不在同一个目录中),那么findgrep的组合就是最灵活的方式:

cd /
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \;

答案 3 :(得分:2)

命令:

grep -rl --include="*.js" "searchString" ${PWD}

返回输出:

/root/test/bas.js

答案 4 :(得分:1)

对我来说 grep -b“searchsomething”* .log 按我的意愿工作

答案 5 :(得分:1)

打印完整路径的最简单方法是用绝对路径替换相对起始路径:

    public class MainActivity extends AppCompatActivity {

    private static final String TAG = "paymentExample";
    private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_NO_NETWORK;
    private static final String CONFIG_CLIENT_ID = "credentials from developer.paypal.com";

    private static final int REQUEST_CODE_PAYMENT = 1;
    private static final int REQUEST_CODE_FUTURE_PAYMENT = 2;
    private static final int REQUEST_CODE_PROFILE_SHARING = 3;

    private static PayPalConfiguration config = new PayPalConfiguration()
            .environment(CONFIG_ENVIRONMENT)
            .clientId(CONFIG_CLIENT_ID)
            // The following are only used in PayPalFuturePaymentActivity.
            .merchantName("Example Merchant")
            .merchantPrivacyPolicyUri(Uri.parse("https://www.example.com/privacy"))
            .merchantUserAgreementUri(Uri.parse("https://www.example.com/legal"));


    private EditText etEmailAddress,etPasswowrd;
    private Button btnLogin;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etEmailAddress = (EditText)findViewById(R.id.etEmailAddress);
        etPasswowrd = (EditText)findViewById(R.id.etPasswowrd);
        btnLogin = (Button) findViewById(R.id.btnLogin);


        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Here I want to login into PayPal
            }
        });
    }
}

答案 6 :(得分:1)

当我正在寻找同样的问题时,我会落在这里,也许它可以帮助其他人。

我认为真正的解决方案是:

cat *.log | grep -H somethingtosearch

答案 7 :(得分:0)

类似于BVB Media的答案。

grep -rnw 'blablabla' `pwd`

它在我的ubuntu bash上工作正常。

答案 8 :(得分:-1)

使用:

grep somethingtosearch *.log

并且文件名将与匹配一起打印出来。