Как добавить Несколько Поисков в команде AWK

Как ранее сказано, Вы можете получить доступ к localhost, Вы просто не в состоянии получить список каталогов. Или поместите файл index.html в корневой каталог или включите список каталогов. К включенному Списку Каталогов:

$ sudo vi /etc/httpd/conf/httpd.conf

Ищите:

<Directory />
</Directory>

Отредактируйте его для сходства с:

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

Сохраните конфигурацию (символ ESC: wq!)

Затем необходимо будет перезапустить апача:

$ sudo /etc/init.d/httpd restart

Необходимо теперь видеть, что каталог перечисляет при соединении 127.0.0.1 на порте 80.

10
26.01.2019, 18:20
3 ответа

Можно соответствовать на нескольких шаблонах как так:

awk '/Jun/ || /July/ || /Aug/' <(ls -lrh)

Это возвращает все соответствия или на июнь, июль или на август. Вы не требуете print оператор, поскольку это awkдействие по умолчанию.

12
27.01.2020, 20:00
  • 1
    awk понимает расширенный regexps, таким образом, для шаблона, столь же простого как который Вы могли записать этому как awk '/Jun|Jul|Aug/' или awk '/Ju[nl]|Aug/' –  cas 30.09.2013, 02:55

Как правило это - очень плохая идея проанализировать вывод ls. Лучший способ сделать, что Вы хотите,

stat -c "%n %y" * | grep 2013-0[678]

С другой стороны, проверьте только последнее поле для защиты от маловероятного случая, где само имя файла является датой:

stat -c "%n %y" *| awk '$NF ~ /2013-0[678]/' 

От man stat:

   -c  --format=FORMAT
          use the specified FORMAT instead of the default; output  a  new‐
          line after each use of FORMAT

   %y     time of last modification, human-readable
   %n     file name
5
27.01.2020, 20:00
  • 1
    Это - также хороший пример. Я никогда не проверял СТАТИСТИКУ прежде. спасибо за большую информацию –  OmiPenguin 29.09.2013, 15:35
  • 2
    Возможно, изменение в...| awk '$NF ~ /2013-0[678]/' только проверять последнее выходное поле, в (вряд ли?) даже, что имя файла соответствует regex, даже когда дата не делает. –  tripleee 17.11.2015, 14:52

ls команда должна отобразить информацию о файлах в человекочитаемом. Не используйте его в сценариях.

Команда для нахождения файлов в дереве каталогов, соответствующем определенным критериям, find. Если у Вас есть GNU, находят (т.е. не встроил Linux или Cygwin), или FreeBSD находят (т.е. FreeBSD или OSX), можно использовать -newermt соответствовать файлам, которые были в последний раз изменены после определенной даты.

find . -newermt '1 June' ! -newermt '1 September' -print

Добавьте год, если Вы хотите соответствовать файлам в определенном году, а не календарный год, когда сценарий работает.

Если Ваша реализация находки не имеет -newermt, необходимо будет суметь обойтись -newer, который сравнивает дату файла это find найденный с фиксированным файлом. использовать touch создать временные файлы с датой, которую Вы хотите использовать в качестве границы.

dir=$(mktemp -d)
touch -d 201306010000 "$dir/from"
touch -d 201309010000 "$dir/to"
find . -newer "$dir/from" ! -newer "$dir/to" -print
rm -r "$dir"
3
27.01.2020, 20:00

Теги

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