我对linux和awk相当陌生。我想显示所有的文件,其大小大于(例如3Kb),并且这些文件是在一个目录中找到的路径是由用户指定的。
我通过对终端中的路径进行“硬编码”来做到这一点:
ls -l /home/user/Documents | ./testScripttestScript包含:
#!/bin/bash -f
awk '
BEGIN{
if($5>3000){
print $9
}
}
'如何在用户指定目录路径的情况下做到这一点?
发布于 2019-03-20 17:36:11
与ls和脚本的组合相比,使用find更容易。
find PATH_TO_DIRECTORY -size +10k你可以把它变成一个带参数的bash函数。
发布于 2019-03-20 17:34:47
贴出一个答案,因为我不能因为缺乏声誉点而发表评论:
不清楚“用户指定的路径”是什么意思,但假设您可以在某个变量中读取路径,那么只需在代码中这样做:
ls -l $mypath //testScript
发布于 2019-03-20 18:16:00
altagir的find是一个更好的解决方案,但在某些人想使用这种通用结构但除了ls之外不知道其他方法的情况下:
stat -c "%s %n" "$someDir"/* | awk -v max=$maxval '$1 > max { print $2 }'https://stackoverflow.com/questions/55266393
复制相似问题