|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] Замена файлов по списку |
|
[решено] Замена файлов по списку
|
Пользователь Сообщения: 96 |
Профиль | Отправить PM | Цитировать
Есть множество файлов с именем "Root", каждый из которых содержит всего одну строчку. Нужно эту строчку поменять.
Командой find я нашёл все эти файлы с именем "Root". Их несколько сотен Все пути сохранил в отдельном файлике. Ребята подскажите пожалуйста скриптик, который бы обошёл этот список и заменил файл "Root" на тот что мне нужен. Т.е. я создам файл с нужным мне параметром, а всё, что нужно сделать это поместить его с заменой в нужные места из списка. Или можно чтобы сам файл не менялся, а заменить только его содержание (мне кажется это сложнее). Как пройтись по списку из файла нашёл Осталось придумать как заменять файл. |
|
Отправлено: 16:40, 01-02-2010 |
Линуксоид-стакановец Сообщения: 2391
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:38, 01-02-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
info man howto Сообщения: 6958
|
Профиль | Сайт | Отправить PM | Цитировать sed -i тут не облегчит работу?
|
------- Отправлено: 20:37, 01-02-2010 | #3 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Спасибо за ответ! Я попробовал немного иначе, вроде получилось. Ваш вариант тоже испытаю.
# !/bin/bash file=/home/volod/Root/virt3 #Файл со списком путей к нужному файлу filename=uus cat=/bin/cat $cat $file | while read line; do if [ -f $line ]; then echo "Нужный текст" > $line echo -e $line '\033[1m OK' #ОК с украшательствами :) tput sgr0 sleep 1 else echo "$line is not file" sleep 1 fi done |
Отправлено: 10:20, 02-02-2010 | #4 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Запустил свой скрипт и столкнулся с проблемой. Всё работало хорошо, до сих пор, пока в списке не наткнулся на пусть с пробелами.
Например /srv/virtual_2/example.domen.ru/html/lib/Hardus/Fail new/Root Естественно из за пробела в пути, скрипт не понимает, что это файл и не делает в нём изменений. Мне кажется самый простой способ в файле со списком путей экранировать все пробелы обратным слешем, но как это сделать не в ручную пока не знаю. Может кто-то подскажет? Т.е. это /srv/virtual_2/example.domen.ru/html/lib/Hardus/Fail new/Root Привести к виду /srv/virtual_2/example.domen.ru/html/lib/Hardus/Fail\ new/Root (с экранирующим слешем перед пробелом). Наверняка это можно сделать в vi или ещё как-то. |
|
Отправлено: 11:01, 02-02-2010 | #5 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Появилась идея просто заключить каждую строчку текста в кавычки.
Кто-нибудь знает как это сделать? Любыми средствами, кроме вставки вручную Пытаюсь искать как автоматизировать этот процесс в Vim, пока не получается. |
Отправлено: 13:33, 02-02-2010 | #6 |
Странный тип Сообщения: 813
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 13:58, 02-02-2010 | #7 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Цитата Kent:
Какой-то замкнутый круг. Похоже надо всё таки искать решение, чтобы добавить обратный слеш (экранирующий пробелы) в те месте списка, где они есть. |
|
Отправлено: 14:12, 02-02-2010 | #8 |
Странный тип Сообщения: 813
|
Профиль | Отправить PM | Цитировать Просто надо значение переменной брать в кавычки -- "$file"
|
------- Отправлено: 20:27, 02-02-2010 | #9 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Спасибо друзья. Получилось!
|
Отправлено: 13:50, 15-02-2010 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Правильная замена файлов в дистрибутиве | illznn | Автоматическая установка Windows 2000/XP/2003 | 5 | 06-04-2009 13:02 | |
замена названия всех файлов | Malfatto | Хочу все знать | 4 | 14-11-2008 16:37 | |
Доступ - Замена защищенных файлов | echo off | Microsoft Windows 2000/XP | 1 | 23-09-2008 03:34 | |
Интерфейс - Замена иконок файлов в Vista | PulSar.CE194694 | Microsoft Windows Vista | 0 | 16-09-2008 15:22 | |
Перемещение по списку в Excel | Evita | Хочу все знать | 3 | 16-03-2006 01:13 |
|