Команда Pipe, Grep і Sort у Linux/Unix із прикладами
Що таке труба в Linux?
Pipe — це команда в Linux, яка дозволяє використовувати дві або більше команд, щоб вихід однієї команди служив введенням для наступної. Коротше кажучи, вихід кожного процесу безпосередньо як вхід для наступного, як конвеєр. Символ '|' позначає трубу.
Канали допомагають одночасно об’єднати дві або більше команд і виконувати їх послідовно. Ви можете використовувати потужні команди, які можуть виконувати складні завдання в одну мить.
Давайте розберемося в цьому на прикладі.
Коли ви використовуєте команду cat для перегляду файлу, який охоплює кілька сторінок, підказка швидко переходить до останньої сторінки файлу, і ви не бачите вмісту посередині.
Щоб уникнути цього, ви можете конвелювати вихід команди cat до 'less', який показуватиме лише одну довжину прокручування вмісту за раз.
cat filename | less
Ілюстрація зробить це зрозумілим.
Натисніть тут якщо відео недоступне
команди «pg» і «more».
Замість «менше» ви також можете використовувати.
cat Filename | pg
or
cat Filename | more
Крім того, ви можете переглядати файл у легкозасвоюваних бітах і прокручувати вниз, просто натиснувши клавішу Enter.
Команда grep
Припустімо, ви хочете знайти певну інформацію за поштовим індексом у текстовому файлі.
Ви можете самостійно вручну переглянути вміст, щоб відстежити інформацію. Кращим варіантом є використання команди grep. Він відсканує документ на наявність потрібної інформації та представить результат у потрібному форматі.
Синтаксис:
grep search_string
Давайте подивимося на це в дії –
Тут, GREP Команда здійснила пошук у файлі «зразок» рядків «Яблуко» та «Їсти».
За допомогою цієї команди можна використовувати такі параметри.
варіант | функція |
---|---|
-v | Показує всі рядки, які не відповідають шуканому рядку |
-c | Відображає лише кількість відповідних рядків |
-n | Показує відповідний рядок і його номер |
-i | Зіставте обидва (верхній і нижній) регістри |
-l | Показує лише назву файлу з рядком |
Давайте спробуємо перший варіант '-i' на той самий файл використовуйте вище –
За допомогою параметра «i» grep відфільтрував рядок «a» (незалежно від регістру) з усіх рядків.
Команда сортування
Ця команда допомагає в сортування вмісту файлу в алфавітному порядку.
Синтаксис цієї команди такий:
sort Filename
Розгляньте вміст файлу.
Використання команди sort
Існує Розширення до цієї команди також, і вони перераховані нижче.
варіант | функція |
---|---|
-r | Reverses сортування |
-n | Сортує чисельно |
-f | Сортування без урахування регістру |
У наведеному нижче прикладі показано зворотне сортування вмісту у файлі "abc".
Що таке фільтр?
У Linux є багато команд фільтра, таких як awk, grep, sed, spell і wc. Фільтр приймає вхідні дані від однієї команди, виконує деяку обробку та видає вихідні дані.
Коли ви передаєте дві команди, «відфільтрований» вихід першої команди передається наступній.
Розберемося в цьому на прикладі.
У нас є наступний файл "зразок"
Ми хочемо підкреслити лише ті рядки, які не містять символу «a», але результат має бути у зворотному порядку.
Для цього можна використовувати наступний синтаксис.
cat sample | grep -v a | sort - r
Давайте подивимося на результат.
Основна інформація:
- Труби '|' надсилати вихідні дані однієї команди як вхідні дані іншої команди.
- Фільтр приймає вхідні дані від однієї команди, виконує деяку обробку та видає вихідні дані.
- Команду grep можна використовувати для пошуку рядків і значень у текстовому документі
- Передача через grep має бути одним із найпоширеніших застосувань
- Команда 'sort' сортує вміст файлу за алфавітом
- Команди less,pg і more використовуються для поділу довгого файлу на читабельні біти