The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Странное поведение от сценария в Crontab PilotGoose Shell программирование и сценарии 1 06-26-2008 10:54 AM
Помощь со своим странным скрипта! kdyzsa Shell программирование и сценарии 1 06-15-2008 11:39 PM
Weird Sudo поведение geomonap UNIX перспективных И опытных пользователей 1 02-03-2006 05:08 PM
каких-либо объяснений по этому оболочки сценарий поведения xiamin Shell программирование и сценарии 9 11-09-2001 01:13 PM
Weird сценарий Duckman UNIX для чайников Вопросы И Ответы 2 03-14-2001 01:53 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 08-30-2008
Peetrus Peetrus is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 2
Weird SED поведения в скрипте

Я написал небольшой скрипт для замены некоторых слов во все файлы в один каталог.


Код:
#!/bin/sh

#Get list of files to be edited

file_list=`ls -p`

for i in $file_list
do
echo "Processing $i"

alteredi=`echo "$i" | sed -e 's/\//d/'`

if [ $i = $alteredi ]
then
	if [ $i != "maketest" ]
	then
	#actual altering
	
	cat $i | sed -e "s/login\//login.tst\//" > $i
	cat $i | sed -e "s/cyberkd\//cyberkd.tst\//" > $i
	cat $i | sed -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" > $i
	echo "  $i has been altered"
	else
	echo "  Not altering myself"
	fi

else
echo "  Not altering directories"
fi

done

Теперь, когда я запускаю этот сценарий в качестве обычного пользователя, только первые 4 Kb в файл обрабатывается. Таким образом все файлы размером более 4 Kb являются сокращение наполовину. Оставшиеся байтах просто исключены из нового файла. Когда я побежал сценарий, как корень, 8kb были обработаны. Есть ли способ обработать все файлы?

Когда я кота большой текстовый файл весь файл получает напечатан на моем экране.

Спасибо заранее.
Old 08-30-2008
Franklin52 Franklin52 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2007
Сообщения: 4342
Не читать и писать в один и тот же файл, и с помощью кото SED является излишним, заменить эти строки:


Код:
cat $i | sed -e "s/login\//login.tst\//" > $i
cat $i | sed -e "s/cyberkd\//cyberkd.tst\//" > $i
cat $i | sed -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" > $i

с:


Код:
sed -e "s/login\//login.tst\//" -e "s/cyberkd\//cyberkd.tst\//" -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" "$1" > temp.file
mv temp.file "$1"

Если вы SED Версия поддерживает флаг-I позволяет редактировать файл на месте, без использования временных файлов.


Код:
sed -i -e "s/login\//login.tst\//" -e "s/cyberkd\//cyberkd.tst\//" -e "s/\/db_connect.inc.php/\/testdb_connect.inc.php/" "$1"

Привет

Последний раз редактировалось Franklin52; на 08-30-2008 08:52 AM..
Old 08-30-2008
Peetrus Peetrus is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 2
Спасибо. Это работает!
Closed Thread

Закладки

Теги
кошка, SED, скорлупа

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 10:27 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0