这会将目录作为参数:
#!/bin/bash
ls -l $1 |awk '$3!=$4{print $9}'
现在我需要的是能够对从awk语句中找到的文件执行另一个ls -l
。
是的,这听起来很愚蠢,而且我知道其他三种方法可以做到这一点,但不是用awk。
答案 0 :(得分:2)
使用awk系统命令:
ls -l $1 |awk '$3!=$4{system("ls -l " $9)}'
答案 1 :(得分:1)
要使用的命令是xargs
。
man xargs
应该提供一些线索。
答案 2 :(得分:0)
#!/bin/bash ls -l $1 | awk '$3!=$4{ system( "ls -l '$1'/" $9}'
答案 3 :(得分:0)
如果允许调整您可以尝试执行的第一个ls -l
:
ls -ld "$1"/* |awk '$3!=$4{print $9}' | xargs ls -l
在这种情况下,ls
将在目录前添加前缀。但我不知道这是否是可移植行为。