如何对 awk 字段的输出执行 ls 命令

发布于 2024-11-04 17:32:10 字数 204 浏览 0 评论 0原文

这需要一个目录作为参数:

#!/bin/bash

ls -l $1 |awk '$3!=$4{print $9}' 

现在我需要的是能够对从 awk 语句中找到的文件执行另一个 ls -l 操作。

是的,这听起来很愚蠢,我知道还有 3 种其他方法可以做到这一点,但不是使用 awk。

This takes a directory as a parameter:

#!/bin/bash

ls -l $1 |awk '$3!=$4{print $9}' 

Now what I need is to be able to do ANOTHER ls -l on the just the files that are found from the awk statement.

Yeah, it sounds dumb, and I know of like 3 other ways to do this, but not with awk.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

仅此而已 2024-11-11 17:32:10

使用awk系统命令:

ls -l $1 |awk '$3!=$4{system("ls -l " $9)}'

Use awk system command:

ls -l $1 |awk '$3!=$4{system("ls -l " $9)}'
卷耳 2024-11-11 17:32:10

使用的命令是 xargs。

man xargs

应该给出一些线索。

The command to use is xargs.

man xargs

should give some clues.

坏尐絯 2024-11-11 17:32:10
#!/bin/bash

ls -l $1 | awk '$3!=$4{ system( "ls -l '$1'/" $9}' 
#!/bin/bash

ls -l $1 | awk '$3!=$4{ system( "ls -l '$1'/" $9}' 
執念 2024-11-11 17:32:10

如果允许调整第一个ls -l,您可以尝试这样做:

ls -ld "$1"/* |awk '$3!=$4{print $9}' | xargs ls -l

在这种情况下,ls将为目录添加前缀。但我不知道这是否是可移植的行为。

If it is allowed to adjust the first ls -l you could try to do:

ls -ld "$1"/* |awk '$3!=$4{print $9}' | xargs ls -l

In this case ls will prefix the directory. But I don't know if this is portable behavior.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文