Головна » як » Посібник для початківців для сценаріїв оболонок 3 Більше основних команд і ланцюжків

    Посібник для початківців для сценаріїв оболонок 3 Більше основних команд і ланцюжків

    Ви навчилися створювати сценарії, використовувати аргументи і створювати для циклів. Тепер давайте подивимося на деякі основні команди, маніпулювання текстовими файлами, і перенаправлення вводу і виводу на файли та інші команди.

    Деякі основні корисні команди

    Ми вже надали вам основну розбивку сценаріїв оболонки та наведений на прикладі контур для циклів, але обов'язково перевірте ці статті, якщо ви пропустили наше керівництво для сценаріїв оболонки.

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

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

    луна - Ця команда просто виводить (відображає) весь аргумент у командному рядку як вихідний

    Аргумент ехо з пробілами

    Як ви можете бачити, спеціальні символи потрібно "втекти", щоб вони трактувалися нормально. Це робиться за допомогою зворотної риски (перед символом). Краще використовувати котирування. Команда echo також працює з змінними.

    Як ви бачите, одинарні та подвійні лапки поводяться по-різному. Для отримання додаткової інформації, перевірте, що різниця між одиночними і подвійними котируваннями в Bash Shell?

    кіт - Ця команда відображає вміст текстових файлів як вихідних.

    cat file_to_be_read

    Припустимо, ми створюємо цей текстовий файл у нано:

    Коли ми використовуємо команду cat на файлі, ми бачимо, що вона виводиться.

    grep - це одна з найпотужніших і корисних команд, доступних вам у Linux. Він виступає за Global / Regular Expression Print. Він переглядає файл і друкує будь-яку лінію, яка відповідає певному шаблону. Оскільки цей шаблон ґрунтується на “регулярному вираженні”, то лаконічна лінія може давати безліч шаблонів, що підходять. Проте не можна ввійти в крячок для пошуку.

    файл шаблону grep

    Я запевняю вас, що grep може зробити більше, але поки що ми будемо дотримуватися більш простих речей.

    Перенаправлення виходів

    Щоб перенаправити вивід команди у файл, скористаємося спеціальним символом, символом більшим ніж (>).

    Давайте змінимо наш список, чи не так? Введіть таку команду:

    echo pepperoni> список

    Ви можете бачити, що ехо не відображає рядок більше, і коли ми дивимося на вміст файлу "список", ми бачимо, що ми повторили там.

    Також зверніть увагу, що попередній вміст "списку" було видалено. Спробуйте ще раз:

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

    луна жовтий перець >> список

    Легко! Давайте скористаємося цією командою для створення більшого списку?

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

    Візьмемо вивід команди і помістимо її у файл:

    ls -al /> ~ / rootlist

    Створення списків файлів, їх редагування, а потім виконання команд, які ви бажаєте, ніколи не були простішими. І, поки ми виконуємо ці основні функції в командному рядку, вони також добре працюють у скриптах.

    Трубопровід або ланцюжок

    Piping називається так тому, що він використовує трубу (|; спільно з ключем на більшості клавіатур). По суті, він приймає вихід однієї команди і безпосередньо подає її іншій. Ви можете створити довгі ланцюжки команд, щоб отримати такий специфічний бажаний результат, і це дуже зручно для команд, таких як grep.

    Він багато в чому схожі на ">", за винятком того, що він може бути прив'язаний кілька разів, і його ефект є більш загальним, оскільки він не повинен проходити через текстовий файл.

    Як ви можете бачити, grep чутливий до регістру. Ви можете скористатися прапором “-i”, щоб ігнорувати випадок.

    Перенаправлення входів

    Ви також можете приймати вхідні дані з файлів для команд, використовуючи символ менше, ніж (<).

    кіт < list

    "Це не відрізняється від використання аргументу!" Ну, ви були б вірні в цьому випадку. Там, де перенаправлення вхідних даних дійсно дуже зручно, це приєднання команд разом.

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

    grep pep версії

    Повторюємо цю команду і додаємо сортування.

    grep pep версії

    Це буде використовувати "pep" як пошуковий термін з вхідного файлу "список", сортувати його в алфавітному порядку (всі терміни верхнього регістру, за якими слідують всі нижчі терміни), а потім вивести його в файл "ревізії" \ t.

    Щоб проілюструвати команду сортування, давайте розглянемо наступний приклад:

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

    Простий сценарій

    Створимо скрипт, який має таку форму:

    скрипт searchterm listfile

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

    Ось каталог, який ми будемо перевіряти сценарієм:

    І, ми можемо створити список того, що тут, а потім запустити скрипт.

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

    Що стосується сортування, ви можете робити більше, ніж просто сортувати за алфавітом. Погляньте на сторінку man для деяких з наступних команд:

    • tsort - більш просунута топологічна функція сортування
    • tr - дозволяє відображати окремі символи з іншими символами і переписувати між ними.
    • uniq - видаляє будь-який не унікальний (читання: дублікат)
    • awk - дійсно просунута мова / функція обробки тексту, яка може використовуватися для розділення полів у іменах файлів
    • cut, paste / join - команди, корисні для ізоляції полів від текстових файлів і додавання нових даних до стовпців
    • look - шукає, як і grep, але використовує файл словника (який може бути вказаний користувачем) для пошуку
    • wc - дозволяє отримати кількість слів, кількість ліній, кількість символів та багато іншого

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

    Які ваші улюблені сценарії? Чи є спеціальні сценарії для текстових файлів? Поділіться тим, що ви знаєте в коментарях!