gpt4 book ai didi

linux - 使用 grep 和 * 获取确切的文件名

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:42 24 4
gpt4 key购买 nike

我有以下堆转储文件

AppSrv01]# ls -ltr *heapdump*
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3436
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3435
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3434
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3433
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3432
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3431
-rw-r--r-- 1 root root 0 Sep 13 17:03 heapdump.dfsdf

现在如果我用

ls -ltr| grep heapdump*

我得到以下输出

AppSrv01]# ls -ltr |grep heapdump*
-rw-r--r-- 1 root root 0 Sep 13 17:03 heapdump.dfsdf

但是我用

ls -ltr |grep *heapdump*

我没有得到任何输出。任何人都可以帮助我的错误在哪里以及如何搜索堆转储文件。

我的预期输出是

ls -ltr | grep *heapdump*

应该给我

-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3436
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3435
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3434
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3433
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3432
-rw-r--r-- 1 root root 0 Sep 13 16:44 hbsbdheapdump.3431
-rw-r--r-- 1 root root 0 Sep 13 17:03 heapdump.dfsdf

由于某些原因我无法使用

ls -ltr *heapdump*

最佳答案

看起来您将 glob 模式与正则表达式混淆了,这正是 grep 使用的。

打印包含单词 heapdump 的文件列表的正确方法是这样的:

printf '%s\n' *heapdump*

此处,*heapdump* 由 shell 进行全局扩展以匹配任何后跟“heapdump”和其他任何内容。所有与模式匹配的文件都被传递给 printf,打印每个文件后跟一个换行符。

如果你想过滤ls -ltr的输出,那么你可以使用:

ls -ltr *heapdump*

相同的文件列表将传递给 ls,它将打印有关它们的信息。

请记住 it is not recommended to attempt to parse the output of ls .

关于linux - 使用 grep 和 * 获取确切的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39487045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com