find имеет параметр -not
или !
, который отменяет предыдущий, и -delete
для удаления файлов:
find. ! -mtime -1 -type f -delete
Обратите внимание, что -not
не соответствует стандарту POSIX
Ваш входной файл является текстовым файлом DOS. Это означает, что последний символ в каждой строке, который увидит инструмент Unix, является символом возврата каретки (, который обычно пишется\r
).
Вы получаете это \r
из вывода второй программы awk
, потому что это часть третьего поля строки. Его нет во втором поле, потому что второе поле находится не в конце строки, поэтому первая программа awk
не генерирует строку с \r
в ней.
Вы также можете использовать bash -x
для запуска скрипта. Это позволяет отслеживать (отладочный )вывод из оболочки. Когда оболочка выводит трассировку команды, включающей специальный символ, например возврат каретки, полезно (? )заключает связанную строку в кавычки как «строку C», то есть как $'...'
.
Преобразуйте файл входных данных в текстовый файл Unix, используя, например,. dos2unix
.