From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 15 Aug 2003 14:10:35 +0400 From: Nickolay Parfenov To: sin.a@freeline.ru, Saratov Linux User Group Maillist Subject: Re: [Sarlug] serach & replace Message-ID: <20030815101035.GA80785@rock.eastsoft.int> References: <200308151326.34347.sin.a@freeline.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <200308151326.34347.sin.a@freeline.ru> User-Agent: Mutt/1.4.1i X-Operating-System: FreeBSD 4.8-RELEASE Organization: EastSoft Ltd. Cc: X-BeenThere: sarlug@lug.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: Saratov Linux User Group Maillist List-Id: Saratov Linux User Group Maillist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2003 10:21:33 -0000 Archived-At: List-Archive: List-Post: Hi, sinaps ! On Fri, Aug 15, 2003 at 01:26:34PM +0400, you wrote: > Есть большое количество файлов, их нужно просмотреть, и заменить > "выражение1" на "выражение2". В "Linux Gazette на русском" недавно был > Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :( . > grep это нашел (в количестве - 140шт.), а с автоматической заменой - > трудности... > В принципе строчку можно просто удалить, если html переживет без > В таких случаях вместо газет лучше читать классику типа Керниган, Пайк "UNIX - универсальная среда программирования" (а лучше учить наизусть ;) и man'ы. То же самое и с perl'ом, разбираться с ним не изучив grep, sed, awk, ... значит просто тратить время. Ну а замену можно сделать, например, из командной строки: for f in *.html;do \ sed 's/выр1/выр2/g'<$f >$f.new && mv $f $f.bak && mv $f.new $f;done Для рекурсивной замены вместо for используй find с параметром -exec. SY, Николай -- Nickolay N. Parfenov (8452) 73-55-10 73-55-12 EastSoft Ltd. E-mail: nik (at) eastsoft.ru FidoNet: 2:5053/44.1 UIN: 14602777 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Nickolay Parfenov To: sin.a@freeline.ru, Saratov Linux User Group Maillist Subject: Re: [Sarlug] serach & replace Message-ID: <20030815101035.GA80785@rock.eastsoft.int> References: <200308151326.34347.sin.a@freeline.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <200308151326.34347.sin.a@freeline.ru> User-Agent: Mutt/1.4.1i X-Operating-System: FreeBSD 4.8-RELEASE Organization: EastSoft Ltd. Cc: X-BeenThere: sarlug@lug.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: Saratov Linux User Group Maillist List-Id: Saratov Linux User Group Maillist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2003 10:21:33 -0000 Date: Fri, 15 Aug 2003 10:21:33 -0000 X-Original-Date: Fri, 15 Aug 2003 14:10:35 +0400 X-List-Received-Date: Fri, 15 Aug 2003 10:21:33 -0000 Message-ID: <20030815102133.q2U-UTu3AQDzl_dCkW1HYt8hKInWVy6Glu2OyeF5MRs@z> Archived-At: List-Archive: List-Post: Hi, sinaps ! On Fri, Aug 15, 2003 at 01:26:34PM +0400, you wrote: > Есть большое количество файлов, их нужно просмотреть, и заменить > "выражение1" на "выражение2". В "Linux Gazette на русском" недавно был > Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :( . > grep это нашел (в количестве - 140шт.), а с автоматической заменой - > трудности... > В принципе строчку можно просто удалить, если html переживет без > В таких случаях вместо газет лучше читать классику типа Керниган, Пайк "UNIX - универсальная среда программирования" (а лучше учить наизусть ;) и man'ы. То же самое и с perl'ом, разбираться с ним не изучив grep, sed, awk, ... значит просто тратить время. Ну а замену можно сделать, например, из командной строки: for f in *.html;do \ sed 's/выр1/выр2/g'<$f >$f.new && mv $f $f.bak && mv $f.new $f;done Для рекурсивной замены вместо for используй find с параметром -exec. SY, Николай -- Nickolay N. Parfenov (8452) 73-55-10 73-55-12 EastSoft Ltd. E-mail: nik (at) eastsoft.ru FidoNet: 2:5053/44.1 UIN: 14602777