我在提取不同大小的独特文件时遇到困难。
问题:在一个目录中存在几个文件,假设有 2 个 2 mb 的文件、4 个 4 mb 的文件和 3 个 6 mb 的文件。
现在,我们需要运行一个脚本来检查所有文件及其大小,并且只打印第一次出现的不同大小的文件。
例如。如果它读取一个文件 f1 并且它是一个 2mb 的文件,它将执行 ls -al of f1
下次如果它得到一个 2 mb 大小的文件,它将跳过它
因此在这种情况下,它将仅打印 3 个不同大小的文件,分别为 2 mb、4 mb 和 6 mb。
[sumit.gupta@abc ~]$ ll mytestfolder/
total 38972
-rw-rw-r-- 1 sumit.gupta sumit.gupta 2097152 Jan 6 23:26 f1
-rw-rw-r-- 1 sumit.gupta sumit.gupta 2097152 Jan 6 23:27 f2
-rw-rw-r-- 1 sumit.gupta sumit.gupta 4194304 Jan 6 23:28 f3
-rw-rw-r-- 1 sumit.gupta sumit.gupta 4194304 Jan 6 23:28 f4
-rw-rw-r-- 1 sumit.gupta sumit.gupta 6291456 Jan 6 23:28 f5
-rw-rw-r-- 1 sumit.gupta sumit.gupta 6291456 Jan 6 23:28 f6
-rw-rw-r-- 1 sumit.gupta sumit.gupta 4194304 Jan 13 11:11 f7
-rw-rw-r-- 1 sumit.gupta sumit.gupta 4194304 Jan 13 11:12 f8
-rw-rw-r-- 1 sumit.gupta sumit.gupta 6291456 Jan 13 11:12 f9
我正在脚本中尝试以下代码:
#!/bin/bash
source="/home/sumit.gupta/mytestfolder/"
ls -ltr /home/sumit.gupta/mytestfolder | cut -d ' ' -f 5,10 | \
head -n -1 > /tmp/abc.txt
ls -ltr /home/sumit.gupta/mytestfolder | cut -d ' ' -f5 | \
uniq > /tmp/def.txt
grep -F -vf /tmp/def.txt /tmp/abc.txt > xyz.txt