Объясните в деталях egrep строку

Привет я нашел в Интернете egrep строку. Строка основывает самую длинную строку в тексте. Но я не понимаю определенные элементы. Возможно, кто-то мог объяснить меня вся строка?

Вот: egrep -n "^.{$(wc -L < filename)}$" filename

0
задан 5 October 2014 в 22:28

1 ответ

Полная команда: egrep -n "^.{$(wc -L < filename)}$" filename

Разбивка:

egrep = Программа egrep, которая ищет строки, которые сопоставьте образец и напечатайте их. (аналогично grep). Эквивалентен grep -E, который интерпретирует вещь в кавычках как расширенный шаблон регулярного выражения.

-n = аргумент egrep для указания номера строки.

$(wc -L < filename) - wc - это программа для подсчета слов, которая печатает количество новых строк и содержимого в файле. -L является аргументом максимальной длины строки wc. < filename - это команда для передачи полного содержимого указанного файла filename в wc. $( ) представляет собой Bashism (то, что связано с программой и языком сценариев bash) и является способом сказать: «Обработайте команду здесь, а затем поместите вывод вместо всей этой строки. Остальная часть этой команды кажется частью регулярных выражений, плюс входные данные, передаваемые в строку, в конечном итоге это просто шаблон, которому соответствует egrep.

"^.{ ... }$" = " это просто способ передать этот шаблон в egrep без символов в нем, интерпретируемых как коды Bash. Остальная часть - это шаблон регулярного выражения . Регулярное выражение - это то, что должен знать каждый. Я использую RegExr , чтобы помочь мне выучить и понять регулярное выражение и построить шаблоны регулярных выражений. Чтобы разбить это, ^ является якорем и указывает, что оно соответствует началу строка. . указывает любой символ, кроме разрыва строки перед следующим аргументом. { и } указывают фактические символы { и } в выходных данных, в соответствии с RegExr. $ в конце является якорем для обозначения конца строки.

0
ответ дан 7 October 2019 в 00:18

Другие вопросы по тегам:

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