sed

sed Команда замінити рядок у файлі

sed Команда замінити рядок у файлі
Всякий раз, коли ми працюємо з будь-якими файлами, дуже поширеною практикою є внесення змін до цих файлів шляхом пошуку та заміни слів. Більшість текстових редакторів надають різні методи, засновані на графічному інтерфейсі, для здійснення цих модифікацій. Однак часом потрібен спосіб знайти і замінити слова у файлі через термінал. Тому в цій статті ми ознайомимо вас із методом використання команди sed для заміни рядка в текстовому файлі. Ми також розглянемо різні сценарії, в яких ця команда може бути використана.

Примітка: Ми будемо використовувати Linux Mint 20 для демонстрації використання команди sed для заміни рядка у файлі. Ви також можете використовувати будь-який інший смак Linux, якщо хочете.

Використання команди sed:

Зараз ми покажемо вам кілька дуже цікавих прикладів для зображення використання команди sed в Linux. Давайте подивимося, як ця команда працює в різних сценаріях.

Створення текстового файлу для демонстрації:

Для демонстрації використання команди sed ми хотіли б працювати з текстовим файлом. Однак ви навіть можете створити файл Bash або будь-який інший файл на ваш вибір. По-друге, ми створимо файл у домашній директорії, щоб нам не потрібно було вказувати складні шляхи під час доступу до цього файлу. Для створення текстового файлу слід виконати такі дії:

Клацніть на піктограму Менеджера файлів на панелі завдань Linux Mint 20:

Тепер створіть новий текстовий файл у домашній директорії, клацнувши правою кнопкою миші в будь-якому місці, а потім вибравши опцію «Новий документ» у каскадному меню та опцію «Порожній документ» у підкаскадному меню. Після створення текстового файлу дайте йому відповідне ім’я. Для цього конкретного прикладу я назвав його як sed.txt.

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

Тепер запустіть термінал в Linux Mint 20, як показано на наступному зображенні:

Після запуску терміналу в Linux Mint 20 ви можете по черзі переглянути всі згадані нижче приклади.

Використання команди sed для заміни всіх випадків даного слова:

Ви можете використовувати команду sed для заміни всіх випадків входження даного слова в текстовий файл. Синтаксис досягнення цієї мети згаданий нижче:

Файл $ sed '/ sed / FindWord / ReplaceWord /'.txt

Тут вам потрібно замінити FindWord словом, яке ви хочете замінити, а ReplaceWord словом, яке потрібно замінити. Більше того, вам також потрібно замінити “файл” на ім’я файлу, де ви хочете зробити ці заміни. У цьому сценарії я замінив FindWord на sed і ReplaceWord на replace. Наше ім’я файлу було sed.txt. Це також показано на наступному зображенні:

Успішне виконання цієї команди покаже вам зміни, які відбулися через запуск цієї команди на вашому терміналі:

Використання команди sed для заміни n-го появи даного слова в кожному рядку:

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

Файл $ sed '/ FindWord / ReplaceWord / num'.txt

Тут вам потрібно замінити FindWord словом, яке ви хочете замінити, а ReplaceWord словом, яке потрібно замінити. Більше того, вам також потрібно замінити “файл” на ім’я файлу, де ви хочете зробити ці заміни. У цьому випадку я замінив FindWord replace і ReplaceWord на sed. Наше ім’я файлу було sed.txt. Крім того, num відноситься до появи або позиції слова, яке потрібно замінити. У продемонстрованому прикладі я хочу замінити перше входження replace на sed у кожному рядку, як показано на зображенні нижче:

Успішне виконання цієї команди покаже вам зміни, які відбулися через запуск цієї команди на вашому терміналі:

Використання команди sed для заміни заданого слова в конкретному рядку:

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

$ sed Файл 'LineNum s / FindWord / ReplaceWord /'.txt

Тут вам потрібно замінити FindWord словом, яке ви хочете замінити, а ReplaceWord словом, яке потрібно замінити. Більше того, вам також потрібно замінити “файл” на ім’я файлу, де ви хочете зробити ці заміни. У цьому сценарії я замінив FindWord sed і ReplaceWord на replace. Наше ім’я файлу було sed.txt. Крім того, вам потрібно замінити LineNum на номер рядка конкретного рядка, в якому ви хочете зробити заміну. У цьому прикладі ми хотіли замінити sed на заміну в рядку номер 2 нашого файлу, як показано на наступному зображенні:

Успішне виконання цієї команди покаже вам зміни, які відбулися через запуск цієї команди на вашому терміналі. Ви можете легко перевірити, що зазначені зміни відбулися лише в рядку № 2 нашого файлу, а не в цілому тексті.

Висновок:

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

Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...