Как в консольной команде получать год из даты в листинге файлов архива?

Есть такой запрос:

tar -tvf acts.tar | nawk -v yearNOW=$(date +%Y) '{year= (index($4, ":")) ? yearNOW : $4; arr[year] += $3} END {for (i in arr) printf("%s -> [%d]\n", i, arr[i])}'


Раньше я его использовал в связке с "find . -type f -follow -ls", теперь понадобилось тоже самое сделать с листингом файлов в архиве, но tar -tvf acts.tar возвращает не год, а дату целиком 2023-01-01:

-rw-r--r-- dmitriy/dmitriy 9844 2023-06-16 19:33 acts/actFirst_53632_1102.htm

Подскажите как поправить чтобы из указанной даты брался только год в этом месте "year= (index($4, ":")"?
  • Вопрос задан
  • 556 просмотров
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
string='-rw-r--r-- dmitriy/dmitriy 9844 2023-06-16 19:33 acts/actFirst_53632_1102.htm'
year=$( awk '{print substr($4,1,4)}' <<<"$string" )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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