Греп - це унікальна і дуже потужна утиліта Linux / UNIX, яка дозволяє шукати певний рядок в одному або декількох файлах в операційній системі GNU / Linux. Це програмне забезпечення командного рядка, яке було розроблено з нуля до виведення тільки відповідних рядків. Команда Grep складається з вибору та інтерпретації регулярних виразів, керування виходом, контроль контексту та інші варіанти.
Щоб використовувати Grep з командного рядка, вам доведеться ввести & lsquo; grep --help & rsquo; Команду в емуляторі терміналу або безпосередньо в консолі Linux, яка виведе всі доступні параметри, а також різні приклади того, як використовувати інструмент для пошуку певного шаблону в файл. Стандартний приклад використання, зазначений вищезазначеною командою, - це "grep [OPTION] ... PATTERN [FILE] ...".
Я хочу побачити приклад!
Найбільш основним прикладом є "grep -i" hello world "menu.h main.c & rdquo ;, де & ldquo; -i & rdquo; Це [OPTION] "hello world" & rdquo; Це [PATTERN] і меню .h & rdquo; Та & ldquo; меню.c & rdquo; Це [FILE]. Ця проста команда використовується для пошуку "hello world" & rdquo; Шаблон у кожному з цих файлів. Пам'ятайте, однак, що [PATTERN] за замовчуванням є базовою регулярною виразом (BRE).
Зверніть увагу, що, використовуючи & ldquo; - & rdquo; Символ для рядка [FILE] у наведеному вище прикладі, Grep автоматично прочитає стандартний ввід. Крім того, якщо взагалі не вказано [FILE], він буде читати поточний каталог.
Чи працює він у моєму вікні Linux?
Гріп розглядається розробниками Linux у всьому світі важливою утилітою UNIX, що означає, що він за замовчуванням встановлюється практично у всіх операційних системах GNU / Linux. Якщо з якихось дивних причин у вашому вікні Linux не встановлено інструмент grep, ви зможете легко встановити його з стандартних сховищ програмного забезпечення вашого дистрибутива. Наразі підтримуються 64-бітні та 32-розрядні архітектури.
Що нового в цьому випуску:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 3.0:
- Покращення:
- Ефективність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мови, і це виявляється перед виходом будь-якого вмісту файлу, grep тепер розглядає файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає дані невідповідними.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за чергою альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в мультибайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли на вході міститься 2-байтовий символ, XY, за яким слідує однобайтовий шаблон пошуку, Y. grep знайде перший , Що відповідає "Y", середній і багатобайтовий, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над цільовим "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає повідомлення "Неприпустимий тип файлу або формат" & quot; Коли відмовляюсь слідувати символічним посиланням. [Помилка введена в grep-2.12]
- Зміни в поведінці:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить замість неправильного керування.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.28:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.27:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.26:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.25:
- Покращення:
- Ефективність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мови, і це виявляється перед виходом будь-якого вмісту файлу, grep тепер розглядає файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає дані невідповідними.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.24:
- Покращення:
- Ефективність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мови, і це виявляється перед виходом будь-якого вмісту файлу, grep тепер розглядає файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає дані невідповідними.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.23:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.22:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за "чверть" альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в багатобайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли вхідний файл містить 2-байтовий символ, XY, а потім однобайтовий шаблон пошуку Y. grep знайде перший , Що відповідає "Y" середньому багатобайту, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над ціллю "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає звіт "Неприпустимий тип файлу або формат" & quot; Коли відмовляється слідувати за символічною посиланням. [Помилка введена в grep-2.12]
- Зміни поведінки:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить, а не погано.
- При пошуку біінальних даних, grep тепер може обробляти нетекстові байти як лінійні термінатори. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.21:
- Покращення:
- Продуктивність була значно покращена для пошуку файлів, що містять дірки, на платформах, де прапорець SEK_DATA lseek ефективно працює.
- Покращення ефективності для відхилення даних, які не можуть збігатися навіть з першою частиною нетривіального шаблону.
- Покращення продуктивності для дуже довгих рядків у шаблонах.
- Якщо файл містить дані, неправильно закодовані для поточного мовного коду, і це виявляється перед виходом будь-якого вмісту файлу, Grep тепер обробляє файл як двійковий.
- grep -P більше не повідомляє про помилку та виходить при видачі недійсних даних UTF-8. Натомість він вважає, що дані не відповідають вимогам.
- Виправлені помилки:
- grep більше не містить шаблонів, які містять w або W у багатобайтових локаціях.
- grep не зможе підрахувати нові рядки всередині, коли він працює в багатобайтових локаціях, що не є UTF8, і може призвести до друку потенційно багатьох рядків, які не збігаються. Наприклад, команда, & quot; seq 10 | Env LC_ALL = zh_CN src / grep -n .. & quot; Надрукував би це: 1: 1 2 3 4 5 6 7 8 9 10, що означає, що матч "10" Був на лінії 1. [помилка введена в grep-2.19]
- grep -F -x -o більше не друкує додатковий новий рядок для кожного збігів. [Помилка введена в grep-2.19]
- grep у мультибайтовому регіоні, що не належить до UTF8, може помилково збігатися в середині багатобайтового символу, використовуючи закріплену за чергою альтернативу в шаблоні, що призводить до друку несумісних ліній. [Помилка з'являється з початку "& quot;]
- grep -FY більше не може збігатися в мультибайтових локаціях, відмінних від UTF8, таких як Shift-JIS, коли на вході міститься 2-байтовий символ, XY, за яким слідує однобайтовий шаблон пошуку, Y. grep знайде перший , Що відповідає "Y", середній і багатобайтовий, а потім помилково просуває внутрішній покажчик на один байт занадто далеко, пропускаючи над цільовим "Y" Відразу після цього. [Помилка введена в grep-2.19]
- grep -E відкинув незрівнянний ')', замість того, щоб розглядати його як ')'. [Помилка з'являється з початку "& quot;]
- У NetBSD grep -r більше не надсилає повідомлення "Неприпустимий тип файлу або формат" & quot; Коли відмовляюсь слідувати символічним посиланням. [Помилка введена в grep-2.12]
- Зміни в поведінці:
- Змінна середовища GREP_OPTIONS тепер застаріває, і grep тепер попереджає, якщо воно використовується. Замість цього використовуйте псевдонім або сценарій.
- У локатах з багатобайтовими кодуваннями, відмінними від UTF-8, grep -P тепер повідомляє про помилку та виходить замість неправильного керування.
- Під час пошуку двійкових даних grep тепер може обробляти нетекстові байти як термінатори лінії. Це може суттєво підвищити продуктивність.
- grep -z більше не автоматично розглядає байт ' 200' як двійкові дані.
Що нового у версії 2.20:
- Виправлення помилок:
- grep - max-count = N FILE більше не буде перестати читати після N-го збігу. І.е., тоді як grep все одно друкуватиме правильний вихід, він буде продовжувати читання до кінця вводу і, отже, потенційно вічно. [Помилка введена в grep-2.19]
- Команда, як echo aa | grep-E '((b $ | c $)) помилково повідомить про введення як відповідну лінію. [Помилка введена в grep-2.19]
- Зміни поведінки:
- grep --exclude-dir = 'FOO /' тепер виключає каталог FOO. Раніше ця ознака означала, що цей варіант виявився неефективним.
Коментар не знайдено