Используя grep
только, Вы могли создать следующий канал:
grep -A1 'Foo' input_file | grep -B1 'Bar' | grep 'Foo'
Первое grep
получит все строки, которые содержат Foo
а также строка после соответствия. Затем мы получаем строки, которые содержат Bar
а также строка перед соответствием, и наконец извлекает строки из этого вывода, которые содержат Foo
.
Править: Как manatwork указанный, существуют некоторые проблематичные случаи, чтобы быть соблюдающими. Хотя интересная задача, из-за grep
строка ориентировала функциональность, любым решением с нею, вероятно, будет 'взлом', и Вы - вероятно, более обеспеченное использование чего-то как pcregrep
который больше подходит для задачи под рукой.
Проблема здесь - это awk
не имеет никакого способа сказать что d
в шаблоне предназначен для представления переменной того имени: awk
попытка состоит в том, чтобы соответствовать литералу d
. Можно использовать расширение параметра вместо этого:
ls -l | awk "/$Date/ {print \$NF}"
Тем не менее две вещи отметить:
ls -l
вывод является меткой времени: в прошлый раз файл был изменен, не создан. Времена создания файла ненадежны в лучшем случае и недоступны в худшем случае.Вы не должны анализировать вывод ls
Использовать find
вместо этого, как в ответе dchirikov.
Необходимо использовать его этот путь:
ls -l | awk -v d="$Date" '$0 ~ d {print $NF}'
Объяснение здесь
Но может быть, лучше использовать find
в Вашем сценарии.
find . -maxdepth 1 -type f -daystart -ctime -`date "+%d"`
Если у Вас есть классик awk
вместо gawk
:
find * -prune -type f -cmin -`date '+%d %H %M' | awk '{print ($1*24+$2)*60+$3}'`
-v
говорит awk использовать переменную окружения – dchirikov 15.10.2013, 15:24-v
используется для присвоения переменных, локализованныхawk
не получают переменные из Вашей текущей среды. – Joseph R. 15.10.2013, 15:42ENVIRON
массив. Таким образом, если Вы ранееexport Date
, затемls -l | awk '$0 ~ ENVIRON["Date"] {print $NF}'
будет также работать. – manatwork 15.10.2013, 15:48ENVIRON
конечно. И-v
для переменных оболочки. – dchirikov 15.10.2013, 15:57ls
если Вы не анализируете его глазами. – Joseph R. 15.10.2013, 17:48