2015-11-16 2 views
-1

Привет Я новичок в bash-скриптах. Я пытаюсь написать код, который предоставляет мне все файлы для имени пользователя, введенного пользователем при появлении запроса, и дату изменения файла, введенную пользователем. Я не могу сортировать и отображать файлы с датой, предоставленной пользователем. Пожалуйста помоги.bash скрипт для сортировки файлов

#!/bin/bash 
echo "Enter your username: " 
read username 
echo "Enter the date file is created: " 
read date 
ls -l | find mypath -user "$username" | find mypath -regextype posix-extended -regex "^[0-9]*[-/.][0-9]*[-/.][0-9]*$" "$date" 

ответ

0

Пройдите через свой код один шаг за шагом.

ls -l 

Распечатайте содержимое каталога, из которого выполняется сценарий. Вы затем отправить этот вывод в найти, что делает запуск ls -l излишним, потому что находка не принимает ничего от стандартного ввода

Вы затем отправляет вывод find mypath -user "$username" (который в настоящее время только список файлов) в другая команда find, которая снова не берет ничего из stdin.

Также быстро google «find created date» возвратил this поток, который говорит нам, что вы даже не можете использовать find для создания созданной даты!

Трубы ("|") используются для перенаправления вывода одной команды, которая будет использоваться в качестве входа другой команды.

Так дата изменения, я хотел бы использовать -

find mydir -user "$username" -newerat $date ! -newerat $(expr $date + 1) 

Вы должны ввести дату в ггггммдд. - смотрите, чтобы sed, awk и grep, если вы хотите расширить функциональные возможности (например, существо способный использовать yyyy-mm-dd).

Смежные вопросы