Скрипт для изменения файла linux

Bash скрипт. Редактирование файлов

Всем доброго времени суток!

Сижу на Ubuntu 14.10, т.к. это единственная версия, которая согласилась установиться на мой ноут. По-скольку версия не самая стабильная, есть пара косяков по софту, в частности после обновления некоторые файлы того-же хрома приходится редактировать вручную. Собственно задался вопросом, а не написать ли под это дело скрипт, чтобы делал за меня всю работу. Но, к несчастью, скриптописательством раньше не занимался, а все уроки по bash похожи на урок по рисованию совы: нарисуйте овал, добавьте деталей, готово. Конечно, что-то я смог сам разобрать, но есть одна задачка, решение которой я себе пока не представляю. Собственно: есть файл в директории /usr/share/applications/ , который редактируется под админом, в файле 225 строк, задача состоит в том, чтобы вставить одну и тот же код (1 строчка) в строку 116, 172 и 226. Если кто сможет предложить решение, я буду благодарен, а если при этом еще и на пальцах разжует как оно работает, получит много плюсов к карме))

на баше давно не писал,а вот на прлюсах такой костыль,за 2 минуты пишется,с учетом перекура 🙂

На плюсах не писал с универа(( Все как-то больше по вебу

Так заменить или вставить?
Если ты вставляешь строку в 116, то предыдущая 116 становится 117, 172 становится 173, а 225 становится 226

Так пиши на ПХП. Ты будешь ржать, но для очень многих админских скриптов он подходит значительно лучше, чем баш.

теже яйца,только в профиль,там хоть на питоне,быстродействие тут не очень важно,да и разница в доли секундах

Источник

Изучаем Bash: Редактируем файл при помощи команды sed

Приветствую всех! 🙂 Продолжу излогать свои мысли по поводу Bash и сегодня мы рассмотрим команду «sed«. Всем, кто желает ознакомиться с прошлым материалом, читаем: Изучаем Bash. Перенаправление информации в файл .

Команда sed и ее принцип

Для начала давайте дадим этой команде определение:

Команда sed — расшифровывается как Stream Editor и представляес собой потоковый текстовый редактор. Поддерживает многие операции, такие как удалить, добавить и заменить. Все эти действия играют значительную роль, при использовании команды sed в скриптах.

Вот три основных действия, которые используются чаще всего:

Читайте также:  Запуск google chrome при запуске windows 10

Синтаксис команды sed очень прост:

sed -[опция] ‘[строки в файле действие/заменяемое значение/на что заменяем]/’ /home/xxx/file

Теперь давайте посмотрим, как дела обстоят на практике и заодно ответим на вопрос пользователя pdb3 . Расмотрим действие на его вопросе 🙂

Итак, имеется файл updates.repo, который лежит по адресу: /etc/yum.repos.d/. Полный адрес: /etc/yum.repos.d/updates.repo.

В данном файле допустим первой строкой идет: enabled=0, что мы хотим заменить на enabled=1. Скрипт будет выглядеть так:

#!/bin/sh # Указываем интерпритатор для наших команд

sed -i ‘1s/0/1/’ /etc/yum.repos.d/updates.repo

Теперь давайте рассмотрим, что мы тут написали.

После команды sed идет опция -i, которая означает, что файл должен быть изменен в определенном месте, которое мы далее и указываем под цифрой «1» — первая строка.

Рядом с «1» стоит буква «s» — как я писал выше, это действие «замена». 0 — что заменяем, 1 — на что заменяем и далее полный адрес и сам файл, в котором мы это все проделываем 🙂

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

Bash — изменить текст в файле

Модератор: /dev/random

Bash — изменить текст в файле

Сообщение AMD » 21.09.2007 02:35

есть файл /etc/default/linux-restricted-modules-common с содержимым

# This file is sourced from the linux-restricted-modules-common init
# script and is used to disable the link-on-boot feature, one module
# at a time. This can be useful if you want to use hand-compiled
# versions of one or more modules, but keep linux-restricted-modules
# installed on your system, or just to disable modules you don’t use
# and speed up your boot process by a second or two.
#
# Use a space-separated list of modules you wish to not have linked
# on boot. The following example shows a (condensed) list of all
# modules shipped in the linux-restricted-modules packages:
#
# DISABLED_MODULES=»ath_hal fc fglrx ltm nv»
#
# Note that disabling «fc» disables all fcdsl drivers, «ltm» disables
# ltmodem and ltserial, and «nv» disables both the nvidia drivers.
# You can also name each module individually, if you prefer a subset.

хочу заменить строку DISABLED_MODULES=»» на DISABLED_MODULES=»nv nvidia_new»
вопрос как это сделать в bash?

Источник

Как редактировать файлы в Ubuntu

Это еще одна инструкция для самых начинающих. В операционной системе довольно часто приходится редактировать файлы. Например, вам может понадобится создать какую-нибудь заметку с действиями, командами или другой информацией, но чаще всего приходится редактировать конфигурационные файлы для внесения различных настроек в систему.

Да, для многого придуман графический интерфейс, и уже почти все можно сделать в нем, но ручной способ все еще остается мощным и очень гибким путем настройки системы. В этой статье мы рассмотрим как редактировать файлы в Ubuntu. Мы будем рассматривать именно этот дистрибутив, потому что он самый популярный среди начинающих.

Как редактировать файлы в Ubuntu

Новичкам намного проще редактирование файлов ubuntu в графическом интерфейсе и для этого в этой системе по умолчанию поставляется программа Gedit. Это очень простой, но достаточно функциональный текстовый редактор, который позволяет делать все что нужно.

Читайте также:  Cpu temps mac os

Функция создания файлов интегрирована в Nautilus, поэтому вы можете просто выбрать пункт создать, а затем пустой файл чтобы получить новый файл в своем домашнем каталоге.

Открыть файл тоже можно с помощью проводника, текстовый редактор Gedit по умолчанию назначен для работы с текстовыми файлами, поэтому достаточно выполнить двойной клик по нужному файлу.

Также вы можете запустить Gedit через терминал. Для этого откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, и выполните:

Но проблемы появляются, если вы попытаетесь открыть с помощью Nautilus конфигурационный файл, расположенный выше вашей домашней папки, он принадлежит пользователю root и только он может его редактировать. Поэтому открыть такой файл прямо из файлового менеджера не получится. Он откроется, но сохранить вы его не сможете.

Обычно права установлены таким образом, что открыть то вы его сможете, а вот сохранить изменения уже нет. Запустите терминал и выполните:

gksu gedit /путь/к/папке/с_файлом/файл

После этого программа запросит пароль и запустит текстовый редактор от имени администратора. Дальше вы сможете успешно выполнить редактирование файлов в Ubutnu и сохранить изменения в файле.

Есть еще одной обходной способ, вы можете, добавить пункт открыть от имени администратора в контекстное меню Nautilus. Для этого нужно выполнить несколько команд в терминале. Сначала обновите списки пакетов из репозиториев:

sudo apt update

Установите пакет nautilus-admin:

sudo apt install -y nautilus-admin

Затем выполните такую команду чтобы полностью закрыть Nautilus:

Теперь загрузите Nautilus, и в меню появится пункт Редактировать как администратор:

После нажатия на этот пункт система запросит пароль и вы получите возможность работать с файлом от имени администратора. Но не все любят запускать графические программы, более опытным пользователям нравится выполнять редактирование файла в терминале Ubuntu через терминал, именно такой способ работы с файлами используется везде у нас на сайте. Дальше мы рассмотрим с помощью каких программ это можно сделать.

Редактирование файлов в Ubuntu через терминал

Очень часто среди опытных пользователей принято работать с текстовыми файлами через терминал, для этого применяются две программы. Одна из них более простая и рассчитана на новичков — nano, а вторая более сложная, но очень эффективная — vim. Для редактирования файла с помощью nano используйте соответствующую команду:

Если файл нужно открыть от имени администратора:

sudo nano /путь/к/файлу/имя_файла

Редактор nano очень прост, для перемещения по файлу используйте кнопки со стрелками, после того, как закончите редактировать файл ubuntu, нажмите чтобы сохранить Ctrl+O, а для выхода Ctrl+X. Еще поддерживается поиск и замена, но все на очень примитивном уровне, и этого явно недостаточно для того чтобы работать эффективно.

Читайте также:  Как отправить смс linux

Другой редактор ориентирован на профессионалов — это редактор vim. Он очень гибкий, может работать в двух режимах — командном и обычном режиме набора текста. Чтобы открыть с помощью него файл выполните:

Или для редактирования файла с правами суперпользователя:

sudo vi /путь/к/файлу/имя_файла

В командном режиме вы можете выполнять поиск, быстро перемещаться по строкам и символам с помощью клавиш набора, а также много других действий. Мы подробно рассматривали как работать с vim в отдельной статье.

Выводы

В этой небольшой статье мы рассмотрели как редактировать файлы в терминале Ubuntu, а также как это более удобно выполнять через графический интерфейс. Это довольно простая задача, для нас — уже опытных пользователей, но для новичков она может показаться совсем непростой. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Как заменить строку в файле в Bash

Главное меню » Linux » Как заменить строку в файле в Bash

Заменить строку в файле командой `sed`

Базовый синтаксис команды ‘sed’ для замены конкретной строки в файле приведен ниже.

Каждая часть приведенного выше синтаксиса объясняется ниже.

Параметр ‘-i‘ используется для изменения содержимого исходного файла с заменой строки, если строка поиска существует в файле.

s‘ указывает заменяющую команду.

search_string содержит строковое значение, которое будет искать в файле для замены.

replace_string содержит строковое значение, которое будет использоваться для замены содержимого файла, соответствующего значению search_string .

filename‘ содержит имя файла, в котором будет применяться поиск и замена.

Пример 1: заменить файл командой sed

В следующем скрипте текст для поиска и замены будет взят у пользователя. Если строка поиска существует в Sales.txt, она будет заменена строкой замены. Здесь будет выполняться поиск с учетом регистра.

Пример 2: Замена файла командой sed с флагом g и i

Следующий сценарий будет работать так же, как и предыдущий пример, но в строке поиска будет производиться глобальный поиск флага «g», а поиск без учета регистра будет выполняться для флага «i».

Пример 3. Замена файла командой sed и шаблоном совпадающих цифр

Следующий сценарий выполнит поиск всего числового содержимого в файле и заменит содержимое, добавив символ «$» в начале чисел.

Заменить строку в файле командой awk

Команда awk – это еще один способ заменить строку в файле, но эта команда не может обновить исходный файл напрямую, как команда sed.

Пример 4: заменить файл командой awk

Следующий скрипт сохранит обновленное содержимое в файле temp.txt, который будет переименован в исходный файл.

Вывод

В этой статье показано, как использовать сценарии bash для замены определенных строк в файле. Задача по замене строки в файле станет для вас проще после отработки приведенных выше примеров.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью