Фильтрация списка строк с использованием математики

У меня есть каталог с файлами, которые перечислены так:

abc201303130110.txt abc201303140511.txt abc201303150112.txt 

Как вы можете видеть, имя файла содержит штамп даты и времени. Я хочу вернуть все файлы со значением 201303140000 или выше в имени файла.

Я могу использовать grep для захвата части datetime имени файла, но я не знаю, как X > 201303140000 фильтр, который может сделать что-то вроде X > 201303140000 .

3 Solutions collect form web for “Фильтрация списка строк с использованием математики”

Если ваш awk – это GNU awk , вы можете просто использовать:

 find . -type f | awk '{ match($0, /2013[0-9]+/,arr)} arr[0] >= 201303140000 ' 

Перл на помощь! Переключатель -n Perl немного похож на sed -n и perl является более мощным в его сопоставлении и арифметике.

 dennis@lightning:/tmp/foo$ ls -1 abc201303130110.txt abc201303140511.txt abc201303150112.txt dennis@lightning:/tmp/foo$ ls | perl -ne '$d=$_; $d =~ s/.*?(\d+).*/\1/s; print if $d >= 201303140000' abc201303140511.txt abc201303150112.txt 

С zsh :

 print -rl abc<201303140000->.txt 
  • Ошибка скрипта Bash, пытающегося записать в файл: нет такого файла или каталога
  • Скопировать файлы .txt в определенную директорию
  • Как получить полное исполняемое имя запущенного процесса в Linux
  • Извлекает ли tar -x в текущий каталог или извлекает его из источника архива?
  • Уникальное имя файла для разных файлов
  • Имена файлов Untar в кодировке символов, отличных от кодировки, используемой в файловой системе
  • Усекать при необходимости при перемещении файла в файловую систему с более коротким NAME_MAX
  • Выберите имя файла Unicode в Bash
  • Как перечислить все файлы в каталоге с абсолютными путями
  • Можно ли добавить поддержку CP-1252 для CentOS?
  • Заполнение вкладки, когда `patch` запрашивает имя файла
  • Как найти файлы к моменту их имени?
  • Linux и Unix - лучшая ОС в мире.