У меня возникли трудности с извлечением уникальных файлов разного размера.Сравнение двух файлов на основе размера
Вопрос: Внутри каталога имеется несколько файлов, предположим, 2 файла из 2 мб, 4 файла из 4 мб и 3 файла из 6 мб.
Теперь нам нужно запустить скрипт, который будет проверять все файлы и их размеры и будет печатать только первое вхождение файла разного размера.
Например. если он читает файл f1 и его это 2mb файл, он будет делать Ls -al из f1
В следующий раз, если он получает файл 2 размера мб, он пропускает ее
и, следовательно, в этом случае он будет печатать только 3 файла с разным размером 2 мб 4 мб и 6 мб.
[[email protected] ~]$ 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
Пожалуйста, добавьте к вопросу о ваших результатах и почему они не согласны с вашими желаниями. – msw
И не анализируйте вывод 'ls' (http://mywiki.wooledge.org/ParsingLs), он добавляет проблемы, когда вы их не ожидаете. – msw
Спасибо за отзыв. Вот вывод: [[email protected] ~] $ sh input.sh [[email protected] ~] $ [[email protected] ~] $ cat xyz.txt [[email protected] ~ ] $ Я получаю пустой результат. Благодаря @pax проблема решена. –