Linux Awk脚本,它将目录的路径作为输入,并显示大小超过限制的所有文件?

Linux Awk脚本,它将目录的路径作为输入,并显示大小超过限制的所有文件?,linux,awk,Linux,Awk,我对linux和awk相当陌生。我想显示大小超过(例如3Kb)的所有文件,以及这些文件在用户指定路径的目录中的位置 我通过对终端中的路径进行“硬编码”来做到这一点,如下所示: ls -l /home/user/Documents | ./testScript testScript包含: #!/bin/bash -f awk ' BEGIN{ if($5>3000){ print $9 } } ' 如果用户指定了目录

我对linux和awk相当陌生。我想显示大小超过(例如3Kb)的所有文件,以及这些文件在用户指定路径的目录中的位置

我通过对终端中的路径进行“硬编码”来做到这一点,如下所示:

ls -l /home/user/Documents | ./testScript
testScript包含:

#!/bin/bash -f
awk '
    BEGIN{
        if($5>3000){
            print $9
        }
    }
'

如果用户指定了目录路径,我该怎么做?

由于缺少信誉点,我无法发表评论,因此发布了答案:

不确定“用户指定的路径”是什么意思,但假设您可以在某个变量中读取路径,则只需在代码中执行以下操作:

ls-l$mypath |/testScript


发布一个答案,因为我无法评论,因为缺少信誉点:

不确定“用户指定的路径”是什么意思,但假设您可以在某个变量中读取路径,则只需在代码中执行以下操作:

ls-l$mypath |/testScript


使用find比使用ls和脚本的组合更容易

find PATH_TO_DIRECTORY -size +10k

您可以将其设置为一个包含参数的bash函数,使用find比使用ls和脚本的组合更容易

find PATH_TO_DIRECTORY -size +10k
您可以将其设置为一个bash函数,使用参数

查找
是一个更好的解决方案,但如果有人想使用此通用结构,但不知道除
ls
之外的其他方法来执行此操作:

 stat -c "%s %n" "$someDir"/* | awk -v max=$maxval '$1 > max { print $2 }'
's
find
是一个更好的解决方案,但如果有人想使用此通用结构,但不知道除
ls
之外的其他方法,则:

 stat -c "%s %n" "$someDir"/* | awk -v max=$maxval '$1 > max { print $2 }'

它必须是awk吗?请参阅为什么不采用该方法。它必须是awk吗?请参阅为什么不采用该方法。感谢您指出这一点,但看到OP最初只想用用户指定的值替换路径(另一个答案中似乎仍然缺少该值),所以我发布了此,感谢您指出这一点,但是看到OP最初只想用用户指定的值替换路径(另一个答案中似乎仍然缺少该值),所以我发布了这个,