powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Изменить строки в файле без участия пользователя
11 сообщений из 11, страница 1 из 1
Изменить строки в файле без участия пользователя
    #36500690
skelet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть некий /etc/fstab -)
хотелось бы произвести следующую операцию:

узнать смонтировано ли там некоторое устройство , напр /dev/xxx если нет то добавить строку, а если есть - изменить некоторые параметры, в частности четвёртое поле fs_mntops с опциями монтирования (там где обычно defaults) . Желательно не создавать новый изменённый, а править текущий.

Это возможно в баше или лучше сразу писать на сях и не заморачиваться?
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36500939
kvasandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да возможно в баше. с пересозданием самый простой и очевидный способ.
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36500942
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверить наличие строки это grep. Изменить строку это sed или awk.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36502011
skelet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Проверить наличие строки это grep. Изменить строку это sed или awk.

ну вы прям секрет открыли, а по подробней? особенно в плане как заставить sed писать в текущий файлик... ?
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36502037
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skelet...
ну вы прям секрет открыли, а по подробней? особенно в плане как заставить sed писать в текущий файлик... ?А в чем "кайф", чтобы прямо в текущий? Чем плохо создать исправленную копию с последующим переименованием?
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36503075
skelet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avb1003skelet...
ну вы прям секрет открыли, а по подробней? особенно в плане как заставить sed писать в текущий файлик... ?А в чем "кайф", чтобы прямо в текущий? Чем плохо создать исправленную копию с последующим переименованием?
да приходится уже, с помощью awk , только вот осталось понять, как в awk передать переменную из баша.

export SIZE не прокатывает...

если кто знает - подскажите, только в этом осталась загвоздка


Код: plaintext
1.
2.
3.
4.
res=$(awk '{ t="SIZE"; if (($2=="/dev/shm") && ($4=="defaults"))
                 { print ( $1,"\t\t",$2,"\t",$3,"\t",t,"\t",$5,"\t",$6 )  }
             else
                 { print }   }' $filename)
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36503667
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skelet... только вот осталось понять, как в awk передать переменную из баша.

export SIZE не прокатывает...
"export SIZE" - это чтобы передать . Передать в любой процесс, запускаемый bash.skelet...
если кто знает - подскажите, только в этом осталась загвоздка
Проблема может быть только в том, как "получить" . Для GNU Awk 3.1.6:
man gawk...
ENVIRON An array containing the values of the current environment.
The array is indexed by the environment variables, each
element being the value of that variable (e.g., ENVI-
RON["HOME"] might be /home/arnold). Changing this array
does not affect the environment seen by programs which gawk
spawns via redirection or the system() function.
...А еще лучше, IMHO, перейти на perl. См. man perlrun, ключи -e,-i, -n, -p.
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36504075
skelet
ну вы прям секрет открыли, а по подробней? особенно в плане как заставить sed писать в текущий файлик... ?
замена в файле при помощи sed, например:
Код: plaintext
$ sed -i 's/ЧТО/ЧЕМ/g' file.txt
g - опционально (заменить все вхождения), если не указывать - заменит только первое вхождение
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36504628
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мимо крокодил,
В маn-е по sed(в отличие от man-а по perl) это явно не сказано, но эксперименты показывают, что
ключ -i приводит к созданию нового файла, а не редактированию уже существующего.
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36504852
Подумалось...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RLY?

man sed
-i[SUFFIX], --in-place[=SUFFIX]

edit files in place (makes backup if extension supplied)
...
Рейтинг: 0 / 0
Изменить строки в файле без участия пользователя
    #36505776
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подумалось...,
Я же так и сказал:"...это явно не сказано, но эксперименты показывают, что ...". Поэкспериментируйте!
Проверьте, например, с помощью команды ls -li, что происходит с inode файла после редактирования "in-place" даже при сохранении размера. У меня он меняется при использовании sed, vim, но, что меня удивило, сохраняется после elvis-2.2.0.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Изменить строки в файле без участия пользователя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]