Удалить все файлы в папке с отметкой времени в имени файла

Рассмотрим не -оболочки Bash, в которых нет строк Bash here -(<<<"...")или подстановок процессов (<(...)), а также тот факт, что некоторым людям необходимо писать сценарии, демонстрирующие уровень переносимости между системами.

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

В скрипте это может быть полезно для предоставления пользователю некоторого текста, например:

Во избежание утомительного

echo 'Usage:'
echo "    $0 [-a|-b] file [file...]"
echo
echo 'Options:'

(Посмотрите в книге реальный пример того, как кто-то действительно делает это, и попытайтесь отследить, какие строки оцениваются, а какие нет. Это точно не пройдет проверку моего кода:https://books.google.com/books?id=0LvYSCi7QsIC&pg=PA201)

Вместо этого можно просто передать здесь -документ вcat:

cat <<-END_USAGE
        Usage:
            $0 [-a|-b] file [file...]

        Options:
END_USAGE

Это, кстати, также дает возможность сделать определенный объем документирования сценария путем разумного выбора здесь -документа "тэг" (END_USAGE, END_FTPи т.д. ).

Это также полезно для отправки готовых сценариев таким утилитам, как ftpили другим программам, способным считывать последовательности команд со своего стандартного ввода.

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

Удаление здесь -документов из Bash также сделало бы Bash бесполезным в качестве кандидата на /bin/shв большинстве систем Unix, поскольку это серьезно нарушило бы его соответствие POSIX.

0
27.11.2019, 12:11
1 ответ

Принято показывать некоторые вещи, которые вы уже пробовали. -Так вы получите больше откликов. Для этого вопроса вам нужно найти регулярные выражения и понять некоторые концепции.Я предполагаю, что "x" в ваших временных метках - это числа? Если это так, это регулярное выражение поможет вам начать:

/tmp>ls | grep -E "[0-9]{2}\-[0-9]{2}\-[0-9]{4}\-[0-9]{1}.txt$"
test-12-12-1234-9.txt

/tmp>rm $(ls | grep -E "[0-9]{2}\-[0-9]{2}\-[0-9]{4}\-[0-9]{1}.txt$")

Разбивка на части:

"
 [0-9]{2}  -- Exactly two numeric characters
 -         -- A literal dash "-"
 [0-9]{2}  -- Exactly two numeric characters
 -         -- A literal dash "-"
 [0-9]{4}  -- Exactly four numeric characters
 -         -- A literal dash "-"
 [0-9]     -- One numeric character
.         -- Any character.  Use \. to insist on a dot
 txt       -- The literal string "txt"
 $         -- An anchor that means the txt has to be at the end of the line
"
0
28.01.2020, 02:21

Теги

Похожие вопросы