[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Нужен ли bash



Dmitry E. Oboukhov -> Konstantin A. Zolotukhin  @ Wed, 24 Sep 2008 13:26:14 +0400:

 >>>> Очень объемный код получается на bash - хорошо,
 >>> то что на баше делается двумя строками на питоне делается несколькими
 >>> экранами кода и наоборот
 >>> просто у каждого своя ниша
 >>> 
 >> Ни холивара ради, просто интересно на примеры посмотреть. Покажите?
 DEO> например файловые операции на шелле всегда делаются проще

 DEO> grep bla-bla file.txt|awk bla-bla|filter bla-bla >file2.txt

 DEO> если то же делать на языке (не забудем что вызов system это фактически
 DEO> вызов shell, и если написать эту же команду на перле через system/open
 DEO> то будет нечестно), то будет нечто вроде

 DEO> #!perl
 DEO> sub filter
 DEO> {
 DEO> 	return bla-bla;
 DEO> }
 DEO> open $file, '<', 'file.txt' or die $!;
 DEO> open $file, '>', 'file2.txt' or die $!;
 DEO> for (<$file>)
 DEO> {
 DEO> 	next unless /bla-bla/;  #grep
 DEO> 	s/bla-bla/bla-bla-bla/; #awk
 DEO> 	print $fout filter($_); #filter/out
 DEO> }

Это, батенька, очень смотря какие файловые операции.  Вот in-place
замену qqq на zzz ты как на шелле будешь делать?

 DEO> другой вопрос конечно что возможно на перле можно будет считать
 DEO> весь файл в одну переменную и одним регулярником сделать нужный
 DEO> перечень действий, однако все равно телодвижений будет много (шелл
 DEO> ведь в таких случаях и файловые ошибки проверяет/отрабатывает)

Шелл зато в вышеприведенном случае ошибки грепа и авка не отработает.

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

Пользователь юникса перестаёт быть пользователем юникса если после его
пользования пользованный юникс перестаёт быть юниксом. (с)


Reply to: