我在做一个作业,我被要求在一定的大小和大小之间找到文件。我被特别要求提供以下格式的输出:
文件名Sha1文件大小
都在一条线上。我无法创建其他文件。
我试过以下方法:
for listed in $(find /my/output -type f -size -20000c):
do
sha1sum "$listed" | awk '{print $1}'
ls -l "$listed" | awk '{print $9 $5}'
done
它提供了所需的输出字段,但不是所需的格式,即。
sha1sum
filename filesize
有谁能给我一个建议,让我可以把所有这些都写在一条线上吗?
谢谢:)
最佳答案
如果使用stat
命令以避免分析ls
的输出,则可以简单地回显所需的所有值:
while IFS= read -r -d '' listed
do
echo "$listed" $(sha1sum "$listed") $(stat -c "%s" "$listed")
done < <(find /my/output -type f -size -20000c -print0)
检查您的
stat
版本,不过,上面是GNU。在OS X上,例如stat -f "%z" $listed
关于linux - 使用AWK对行和列进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47346916/