Awk ls命令:如何获得递归完整路径列表,每个文件一行,按权限过滤?

Awk ls命令:如何获得递归完整路径列表,每个文件一行,按权限过滤?,awk,grep,ls,mapr,Awk,Grep,Ls,Mapr,我的目标是能够识别MapR集群文件系统中的所有流(文件)路径 通过解决这个问题,我发现在MapR集群中,流存储为指向具有只读权限的MapR表的链接 可以使用以下方法轻松发现这些问题: ls -alR -1 /mapr |grep 'lr-------- 1 mapr mapr' lr-------- 1 mapr mapr 2 Jan 24 13:02 f -> mapr::table::2129.42.131292 lr-------- 1 mapr mapr 2 Jan 27 12:

我的目标是能够识别MapR集群文件系统中的所有流(文件)路径

通过解决这个问题,我发现在MapR集群中,流存储为指向具有只读权限的MapR表的链接

可以使用以下方法轻松发现这些问题:

ls -alR -1 /mapr |grep 'lr-------- 1 mapr mapr'

lr-------- 1 mapr mapr 2 Jan 24 13:02 f -> mapr::table::2129.42.131292
lr-------- 1 mapr mapr 2 Jan 27 12:49 transactions -> mapr::table::2129.48.393912
lr-------- 1 mapr mapr 2 Jan  3 12:52 customers -> mapr::table::2129.36.131280
lr-------- 1 mapr mapr 2 Jan  3 16:47 creditcards -> mapr::table::2129.39.131286
lr-------- 1 mapr mapr 2 Jan  3 12:40 databroker -> mapr::table::2129.33.131274
lr-------- 1 mapr mapr 2 May 25 13:00 drill_test -> mapr::table::2049.12355.3399972
lr-------- 1 mapr mapr 2 Jun 14 05:23 geo -> mapr::table::2049.22145.4864546
lr-------- 1 mapr mapr 2 Jun  7 10:36 bonus -> mapr::table::2049.26487.4074656
还有两个问题:

显示的输出是流文件和MapR DB表;可以使用maprcli命令执行进一步的识别,但为了做到这一点,我需要完整的路径,以便将文件导入另一个程序

使用以下解决方案可轻松获得路径:

但是grep命令中的标识掩码不能应用于短名单,我只剩下集群中所有文件的列表

我认为可能有效的一种方法是使用以下方法提取有问题的特定文件链接:

ls -alR -1 /mapr |grep 'lr-------- 1 mapr mapr' |awk '{ print $9 }'
其结果是:

f
transactions
customers
creditcards
databroker
drill_test
geo
bonus
然后通过管道将它们导入一个find循环(或其他“?”),但这执行得很差

是否有一个方法递归地输出路径和文件名<强>并发权限< /强>允许像GRIP命令中演示的那样进行过滤?(我认为安全的)我所做的假设是,在集群中,只有MapR DB表和MapR Streams具有这些权限,从数据管理的角度来看,当服务出现在集群中,开始写入我们尚未在下游系统(报告、ETL等)中捕获的数据时,识别这两个表将提供好处


更好的是,魔弹正在以其他(更可靠的)方式生成一个在集群中注册的MapR流列表。

你知道
find.-ls
manfind
将显示其他选项以帮助你过滤和集中搜索。然后你可以在这里搜索
[linux][find]optInQuestion
。祝你好运。谢谢!这很有帮助!你知道
查找。-ls
吗?
man find
将显示其他选项来帮助你筛选和集中搜索。然后你可以在这里搜索
[linux][find]optInQuestion
。祝你好运。谢谢!这很有帮助!