Я пытаюсь получить из каталога все файлы, которые имеют «load» в своих именах. Я пытаюсь сделать:
find -type f | sed -s 'load
Однако, я периодически получаю сообщение об ошибке
sed: -e выражение # 1, char 1: неизвестная команда: `f '
Хуже всего то, что, хотя я могу манипулировать регулярными выражениями, я действительно плохо использую grep / sed / awk, и это все время тормозит меня. Какой бы материал я ни нашел в интернете, он не очень хорош. Ребята, вы знаете какие-нибудь всесторонние и довольно лаконичные скринкасты / уроки? Я все еще скучаю по умению читать и быстро понимать руководства Linux.
Вам вообще не нужен grep / sed / awk, пусть find
отфильтрует результаты для вас:
find . -type f -name '*load*'
Или, только в bash
shopt -s globstar nullglob
load_files=( **/*load* )
, если вам нужен внешний инструмент:
find . -type f | grep load
find . -type f | awk '/load/'
find . -type f | sed -n '/load/p'
С помощью sed используйте -n для подавления нормального вывода и печатайте только для строк, соответствующих шаблону.