манипуляция строками без awk или sed

Если вы не используете macOS, дата создания файла не сохраняется. В любом случае эта концепция плохо определена, поскольку при редактировании файла часто создается новый файл, который заменяет предыдущую версию. Записывается дата последнего изменения файла (включая как первоначальное создание, так и любое последующее редактирование).

Самый простой способ отсортировать файлы по времени изменения - запустить zsh (в отличие от других, менее мощных командных интерпретаторов, таких как bash, ksh или fish). В zsh вы можете использовать квалификаторы glob , такие как Om , для сортировки файлов по времени модификации (сначала самые старые, сделайте это Om , чтобы сначала получить младшие).

grep _rlnAveragePmax *model*(Om)

Это дает желаемый результат, поскольку grep просматривает файлы в порядке, указанном в командной строке.

1
20.10.2015, 16:58
1 ответ

Ради интереса вот решение POSIX, не использующее ни grep, ниcut:

#!/bin/sh -

while IFS= read -r line; do
    name=${line%[A-Z]*} # remove smallest suffix beginning with uppercase
    occ=${line#???} # remove first 3 characters
    occ=${occ%?????} # remove last 5 characters
    salary=${line##*[!0-9]} # remove largest prefix ending with a non-digit
    case $name in
        *$1*)
            if [ "$2" = occupation ]; then
                printf '%s %s\n' "$curr_name" "$curr_occ"
            else
                printf '%s %s\n' "$curr_name" "$curr_salary"
            fi
    esac
done

0
23.04.2020, 21:08

Теги

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