Пример ввода изменен, чтобы получить одну совпадающую строку на выходе
$ cat ip.txt
23 8 drwx------ 16 userid grpid 2048 2009-06-25 20:42 2011-03-03 17:27 2011-03-03 17:27 /path/dir
66738 8 -rwx--S--- 3 userid grpid 1024 2010-03-05 11:49 2011-07-07 17:48 2010-03-05 11:49 /path/dir/dir2
90354 8 -rw-r----- 1 userid grpid 65536 2016-05-25 15:28 2008-05-22 12:00 2014-03-05 16:00 /path/dir/dir2/file1
89743 8 -rw-r----- 1 userid grpid 65536 2016-05-25 15:28 2008-05-22 12:00 2010-03-05 16:00 /path/dir/dir2/file2
$ grep -P '^(\S+\s+){2}-(?1){5}(\d\d(0\d|1[0-2]))(?1){2}(?2)' ip.txt
66738 8 -rwx--S--- 3 userid grpid 1024 2010-03-05 11:49 2011-07-07 17:48 2010-03-05 11:49 /path/dir/dir2
(\ S + \ s +)
не- пробел, за которым следует пробел. {5}
или {2}
указывает, что нужно повторить, что много раз \ d \ d (0 \ d | 1 [0-2])
для лет 2012
или ранее (при условии, что первые две цифры года не превышают 20
) (? 1)
относится к (\ S + \ s +)
и (? 2)
относятся к решению (\ d \ d (0 \ d | 1 [0-2]))
perl
, аналогичному ответ glenn
$ perl -ae 'print if $F[2] =~ /^-/ && $F[7] < 2013 && $F[9] < 2013' ip.txt
66738 8 -rwx--S--- 3 userid grpid 1024 2010-03-05 11:49 2011-07-07 17:48 2010-03-05 11:49 /path/dir/dir2
Добавьте > output.txt
в конец команды, чтобы сохранить результаты в другом файле
Согласно FHS /srv
предназначен для данных конкретного сайта, а не для программных пакетов (и в этом отношении является просто более новой альтернативой /var
)
/srv содержит данные конкретного сайта, которые обслуживаются этой системой
однако если вы запускаете веб-приложение Django с (скажем) Apache, ваш webapp может быть классифицирован как data для него, поэтому он должен идти в /srv/
(точно так же, как вы развернули бы его в /var/www
на более старой системе).
И FHS четко намекает на это:
записываемые данные и скрипты (такие как cgi скрипты) могут быть разумно размещены