Як використовувати команду look в Linux

Команда Linux look пробігає файл і перераховує всі рядки, які починаються з певного слова або фрази. Але обережно! У різних дистрибутивах Linux він поводиться по-різному. Цей підручник покаже вам, як ним користуватися.

Зовнішній вигляд Ubuntu Команда веде себе інакше

Для простої, але корисної команди look, безумовно, дав мені обхід, коли я досліджував цю статтю. Було дві проблеми: сумісність і документація.

Цю статтю було перевірено за допомогою Ubuntu, Fedora та Manjaro. look був у комплекті з кожним із цих дистрибутивів, що було чудово. Проблема полягала в тому, що поведінка не була однаковою для всіх трьох. Версія Ubuntu була дуже іншою. Відповідно з Сторінки керівництва Ubuntu, поведінка має бути такою ж.

Зрештою я це зрозумів. look традиційно використовує a двійковий пошук, тоді як вигляд Ubuntu використовує a лінійний пошук. На онлайн-довідкових сторінках Ubuntu для Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) і Disco Dingo (19.04) сказано, що версія Ubuntu використовує двійковий пошук, що не так.

Якщо ми подивимося на локальну сторінку керівництва Ubuntu, ми побачимо, що там чітко вказано, що їхній вигляд використовує лінійний пошук. Існує параметр командного рядка, щоб змусити його використовувати двійковий пошук. Жодна з версій в інших дистрибутивах не має можливості вибору методів пошуку.

man look

Прокручуючи сторінку керівництва вниз, ми бачимо розділ, який описує цю версію вигляду з використанням лінійного замість двійкового пошуку.

  Як покращити шрифти в Linux

Мораль цієї історії полягає в тому, щоб спочатку перевірити місцеві сторінки керівництва.

Лінійний пошук проти двійкового пошуку

Метод двійкового пошуку швидший і ефективніший, ніж лінійний пошук. Робота з великими файлами робить це дуже очевидним. Недоліком бінарного пошуку є те, що ваш файл повинен бути відсортований. Якщо ви не хочете сортувати свій файл, відсортуйте його копію, а потім використовуйте це з виглядом.

Ми продемонструємо це в іншому місці цієї статті. Тільки майте на увазі, що у Fedora, Manjaro та, як я очікую, більшість решти світу Linux вам потрібно буде створити відсортовану копію вашого файлу та працювати з нею.

Встановлення слів

look може працювати з будь-яким текстовим файлом, який ви виберете, або з локальним файлом словника «words».

На Manjaro вам потрібно встановити файл «words». Використовуйте цю команду:

sudo pacman -Syu words

Використання погляду

У цій статті ми будемо працювати з текстовим файлом Едвард Лір вірш «Гармани».

Давайте подивимося на його вміст за допомогою цієї команди:

less the-jumblies.txt

Ось перша частина вірша. Зауважте, що ми використовуємо Ubuntu, тому файл залишається невідсортованим. Для Fedora і Manjaro ми будемо працювати з відсортованою копією файлу, який ми розглянемо далі в цій статті.

  Як створити резервну копію вашого ПК з Linux за допомогою BackInTime

Якщо ми шукаємо рядки, які починаються зі слова «Вони», ми дізнаємося, що зробили Jumblies.

look They the-jumblies.txt

look відповідає, перераховуючи ці рядки:

Вихід з

Ігнорування регістру символів

Щоб вигляд ігнорував різницю між верхнім і нижнім регістрами, використовуйте параметр -f (ігнорувати регістр). Ми знову використали слово «вони» як слово для пошуку, але цього разу воно написане з нижнього регістру.

look -f they the-jumblies.txt

Цього разу результати включають додаткову лінію.

Вихід з

Рядок, що починається з «ВОНИ», був пропущений в останньому наборі результатів, оскільки він написаний у верхньому регістрі та не відповідає нашому пошуковому терміну «Вони».

Ігнорування регістру дозволяє look включити його в результати.

Використання look з відсортованим файлом

Якщо ваш дистрибутив Linux має версію вигляду, яка відповідає традиційній поведінці використання двійкового пошуку, ви повинні або відсортувати файл, або працювати з його відсортованою копією.

Давайте повторимо команду для пошуку «Вони», але цього разу на Manjaro.

Як бачимо, результатів не повернуто. Але ми знаємо, що у вірші є рядки, які починаються зі слова «Вони».

Давайте зробимо відсортовану копію файлу. Якщо ви збираєтеся використовувати параметри -f (ігнорувати регістр) або -d (лише буквено-цифрові символи та пробіли) із виглядом, ви повинні використовувати їх під час сортування файлу.

Параметр -o (виведення) дозволяє вказати ім’я файлу, до якого слід додати відсортовані рядки. У цьому прикладі це «sorted.txt».

sort -f -d the-jumblies.txt -o sorted.txt

Давайте використаємо look на файл sorted.txt, а потім скористаємося параметрами -f і -d.

  Як створити резервну копію вашого профілю Geary Mail в Linux

Тепер ми отримуємо очікувані результати.

Враховуйте лише пробіли та букви та цифри

Щоб виглядати, ігноруйте все, що не є буквено-цифровий символ або пробіл, використовуйте параметр -d (буквенно-цифровий).

Давайте подивимося, чи є слова, які починаються на «О».

look -f oh the-jumblies.txt

Вигляд не повертає результатів.

Давайте спробуємо ще раз і скажіть look ігнорувати будь-що, крім буквено-цифрових символів і пробілів. Це означає, що символи та символи, такі як розділові знаки, ігноруватимуться.

look -f -d oh the-jumblies.txt

Цього разу ми отримуємо результат. Раніше ми не знаходили цей рядок, оскільки лапки та знак оклику заплутували пошук.

Вихід з

Визначення кінцевого символу

Ви можете вказати look використовувати певний символ як символ закінчення. Зазвичай пробіли та кінець рядків використовуються як символ закінчення.

Параметр -t (завершальний символ) дозволяє нам вказати символ, який ми хотіли б використовувати. У цьому прикладі ми будемо використовувати символ апострофа. Нам потрібно вводити його в лапки зі зворотною косою рискою, щоб погляд знав, що ми не відкриваємо рядок.

Ми також цитуємо пошуковий термін, оскільки він містить пробіл. Ми шукаємо два слова.

look -f -t ' "they call" the-jumblies.txt

Результати відповідають пошуковому терміну, який закінчується апострофом, який ми використали як кінцевий символ.

Використання look Without a File

Якщо ви не вкажете ім’я файлу в командному рядку, look uses файл слів.

Команда:

дає такі результати:

Це всі слова у файлі, які починаються зі слова «коло».

шукати далі

Це все, що треба дивитися.

Це досить легко, якщо ви знаєте, що в різних дистрибутивах Linux існує різна поведінка, і ви зрозуміли, чи використовує ваша версія двійковий чи лінійний пошук.