* Re: [Comm] Поиск и замена
@ 2005-04-19 12:20 ` Eugene A. Suchkov
2005-04-19 12:32 ` Alexey Rusakov
1 sibling, 0 replies; 19+ messages in thread
From: Eugene A. Suchkov @ 2005-04-19 12:20 UTC (permalink / raw)
To: community
Hi, Дорогов Николай! You wrote 19.04.2005 16:20:
> Подскажите чем из стандартного можно
> в большом количестве текстовых файлов произвести замену одной строки на другую,
> желательно в консоли и с рекурсией по вложенным папкам.
sed
--
With best regards
Eugene A. Suchkov (a.k.a CityHawk)
ICQ 177787156
http://www.livejournal.com/users/suchkoff/
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Поиск и замена
2005-04-19 12:20 ` [Comm] Поиск и замена Eugene A. Suchkov
@ 2005-04-19 12:32 ` Alexey Rusakov
2005-04-19 12:51 ` Дорогов Николай
1 sibling, 1 reply; 19+ messages in thread
From: Alexey Rusakov @ 2005-04-19 12:32 UTC (permalink / raw)
To: community
On 19.04.2005 16:20, Дорогов Николай wrote:
> Подскажите чем из стандартного можно
> в большом количестве текстовых файлов произвести замену одной строки на
> другую,
> желательно в консоли и с рекурсией по вложенным папкам.
Помнится, я для таких целей пользовался rpl (apt-get install rpl),
причём когда та же проблема была на SuSE, пришлось притащить пакет из
ALT - родного не нашёл. Так что стандартным я это назвать не могу и
присоединяюсь к предыдущему оратору - sed.
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Поиск и замена
2005-04-19 12:32 ` Alexey Rusakov
@ 2005-04-19 12:51 ` Дорогов Николай
2005-04-19 12:52 ` Alexey Rusakov
2005-04-19 12:55 ` [Comm] " Nick S. Grechukh
0 siblings, 2 replies; 19+ messages in thread
From: Дорогов Николай @ 2005-04-19 12:51 UTC (permalink / raw)
To: community
> On 19.04.2005 16:20, Дорогов Николай wrote:
> > Подскажите чем из стандартного можно
> > в большом количестве текстовых файлов произвести замену одной строки на
> > другую,
> > желательно в консоли и с рекурсией по вложенным папкам.
> Помнится, я для таких целей пользовался rpl (apt-get install rpl),
> причём когда та же проблема была на SuSE, пришлось притащить пакет из
> ALT - родного не нашёл. Так что стандартным я это назвать не могу и
> присоединяюсь к предыдущему оратору - sed.
Как я понял из man, sed не меняет исходный файл а выводит данные в
стандартный вавод.
Есть ли команды которые позволяют делать замены прям в том файле который
читается?
>
> --
> Alexey "Ktirf" Rusakov
> _______________________________________________
> Community mailing list
> Community@altlinux.ru
> https://lists.altlinux.ru/mailman/listinfo/community
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Поиск и замена
2005-04-19 12:51 ` Дорогов Николай
@ 2005-04-19 12:52 ` Alexey Rusakov
2005-04-19 13:08 ` [Comm] [JT] " Michael Isachenkov
2005-04-19 12:55 ` [Comm] " Nick S. Grechukh
1 sibling, 1 reply; 19+ messages in thread
From: Alexey Rusakov @ 2005-04-19 12:52 UTC (permalink / raw)
To: community
On 19.04.2005 16:51, Дорогов Николай wrote:
> Как я понял из man, sed не меняет исходный файл а выводит данные в
> стандартный вавод.
> Есть ли команды которые позволяют делать замены прям в том файле который
> читается?
Используйте стандартную схему с выводом во временный файл и его
последующим переименованием. Оно и безопаснее, и проще, и надёжнее.
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Поиск и замена
2005-04-19 12:51 ` Дорогов Николай
2005-04-19 12:52 ` Alexey Rusakov
@ 2005-04-19 12:55 ` Nick S. Grechukh
1 sibling, 0 replies; 19+ messages in thread
From: Nick S. Grechukh @ 2005-04-19 12:55 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 273 bytes --]
On Tuesday 19 April 2005 15:51, Дорогов Николай wrote:
> Как я понял из man, sed не меняет исходный файл а выводит данные в
> стандартный вавод.
> Есть ли команды которые позволяют делать замены прям в том файле который
> читается?
$ rpm -qf /usr/bin/subst
sed-4.1.4-alt2
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] [JT] Поиск и замена
2005-04-19 12:52 ` Alexey Rusakov
@ 2005-04-19 13:08 ` Michael Isachenkov
2005-04-19 13:12 ` Re[2]: " Anton Gorlov
` (3 more replies)
0 siblings, 4 replies; 19+ messages in thread
From: Michael Isachenkov @ 2005-04-19 13:08 UTC (permalink / raw)
To: community
>> Используйте стандартную схему с выводом во временный файл и его
> последующим переименованием. Оно и безопаснее, и проще, и надёжнее.
Был, впрочем, такой случай.
Один мой знакомый попросил другого моего знакомого сделать скрипт, который переводит все имена файлов в lowercase рекурсивно, начиная с текущей директории.
Как вы думаете, каков был результат? :-]
--
Best regards, Michael Isachenkov
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re[2]: [Comm] [JT] Поиск и замена
2005-04-19 13:08 ` [Comm] [JT] " Michael Isachenkov
@ 2005-04-19 13:12 ` Anton Gorlov
2005-04-19 13:18 ` Michael Isachenkov
2005-04-19 13:13 ` Olvin
` (2 subsequent siblings)
3 siblings, 1 reply; 19+ messages in thread
From: Anton Gorlov @ 2005-04-19 13:12 UTC (permalink / raw)
To: community
Здравствуйте, Michael.
Вы писали 19 апреля 2005 г., 17:08:24:
> Был, впрочем, такой случай.
> Один мой знакомый попросил другого моего знакомого сделать
> скрипт, который переводит все имена файлов в lowercase рекурсивно,
> начиная с текущей директории.
> Как вы думаете, каков был результат? :-]
Э.... размер винта стал lowercase? ;-)
А без шуток -всё что есть на винте стало в нижнем регистре?
--
С уважением,
Anton mailto:Pnz.Stalker@mail.ru
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] [JT] Поиск и замена
2005-04-19 13:08 ` [Comm] [JT] " Michael Isachenkov
2005-04-19 13:12 ` Re[2]: " Anton Gorlov
@ 2005-04-19 13:13 ` Olvin
2005-04-19 13:21 ` Alexey Rusakov
2005-04-19 14:53 ` [Comm] " Michael Shigorin
3 siblings, 0 replies; 19+ messages in thread
From: Olvin @ 2005-04-19 13:13 UTC (permalink / raw)
To: community
Michael Isachenkov wrote:
>>>Используйте стандартную схему с выводом во временный файл и его
>>последующим переименованием. Оно и безопаснее, и проще, и надёжнее.
> Был, впрочем, такой случай.
> Один мой знакомый попросил другого моего знакомого сделать скрипт, который переводит все имена файлов в lowercase рекурсивно, начиная с текущей директории.
> Как вы думаете, каков был результат? :-]
MAKEDEV пошёл гулять лесом? :)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Re[2]: [Comm] [JT] Поиск и замена
2005-04-19 13:12 ` Re[2]: " Anton Gorlov
@ 2005-04-19 13:18 ` Michael Isachenkov
0 siblings, 0 replies; 19+ messages in thread
From: Michael Isachenkov @ 2005-04-19 13:18 UTC (permalink / raw)
To: community
>> А без шуток -всё что есть на винте стало в нижнем регистре?
Именно так. :))
--
Best regards, Michael Isachenkov
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] [JT] Поиск и замена
2005-04-19 13:08 ` [Comm] [JT] " Michael Isachenkov
2005-04-19 13:12 ` Re[2]: " Anton Gorlov
2005-04-19 13:13 ` Olvin
@ 2005-04-19 13:21 ` Alexey Rusakov
2005-04-19 14:02 ` Michael Isachenkov
2005-04-19 14:53 ` [Comm] " Michael Shigorin
3 siblings, 1 reply; 19+ messages in thread
From: Alexey Rusakov @ 2005-04-19 13:21 UTC (permalink / raw)
To: community
On 19.04.2005 17:08, Michael Isachenkov wrote:
> Был, впрочем, такой случай.
> Один мой знакомый попросил другого моего знакомого сделать скрипт, который переводит все имена файлов в lowercase рекурсивно, начиная с текущей директории.
> Как вы думаете, каков был результат? :-]
Что-то мне подсказывает, что он переименовывал имя каталога, после чего
пытался войти в него по старому не-lowercase имени. Или всё-таки правда
MAKEDEV пошёл гулять лесом? :)
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] [JT] Поиск и замена
2005-04-19 13:21 ` Alexey Rusakov
@ 2005-04-19 14:02 ` Michael Isachenkov
0 siblings, 0 replies; 19+ messages in thread
From: Michael Isachenkov @ 2005-04-19 14:02 UTC (permalink / raw)
To: community
>> MAKEDEV пошёл гулять лесом? :)
И он тоже. :) наряду с /etc/X11 и т.п. :)
--
Best regards, Michael Isachenkov
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Comm] Re: [JT] Поиск и замена
2005-04-19 13:08 ` [Comm] [JT] " Michael Isachenkov
` (2 preceding siblings ...)
2005-04-19 13:21 ` Alexey Rusakov
@ 2005-04-19 14:53 ` Michael Shigorin
2005-04-19 16:45 ` Michael Isachenkov
2005-04-20 13:28 ` Andrey Rahmatullin
3 siblings, 2 replies; 19+ messages in thread
From: Michael Shigorin @ 2005-04-19 14:53 UTC (permalink / raw)
To: community
On Tue, Apr 19, 2005 at 05:08:24PM +0400, Michael Isachenkov wrote:
> Один мой знакомый попросил другого моего знакомого сделать
> скрипт, который переводит все имена файлов в lowercase
> рекурсивно, начиная с текущей директории.
> Как вы думаете, каков был результат? :-]
Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Re: [JT] Поиск и замена
2005-04-19 14:53 ` [Comm] " Michael Shigorin
@ 2005-04-19 16:45 ` Michael Isachenkov
2005-04-19 17:06 ` Michael Shigorin
2005-04-20 13:28 ` Andrey Rahmatullin
1 sibling, 1 reply; 19+ messages in thread
From: Michael Isachenkov @ 2005-04-19 16:45 UTC (permalink / raw)
To: community
>>
> Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
Михаил, вы единственный оптимист в community@! :)
--
Best regards, Michael Isachenkov
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Comm] Re: [JT] Поиск и замена
2005-04-19 16:45 ` Michael Isachenkov
@ 2005-04-19 17:06 ` Michael Shigorin
2005-04-19 17:10 ` Michael Isachenkov
2005-04-19 21:32 ` Olvin
0 siblings, 2 replies; 19+ messages in thread
From: Michael Shigorin @ 2005-04-19 17:06 UTC (permalink / raw)
To: community
On Tue, Apr 19, 2005 at 08:45:52PM +0400, Michael Isachenkov wrote:
> > Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
> Михаил, вы единственный оптимист в community@! :)
Да не, просто в своё время споткнулся и узнал про find -depth. :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Re: [JT] Поиск и замена
2005-04-19 17:06 ` Michael Shigorin
@ 2005-04-19 17:10 ` Michael Isachenkov
2005-04-19 21:32 ` Olvin
1 sibling, 0 replies; 19+ messages in thread
From: Michael Isachenkov @ 2005-04-19 17:10 UTC (permalink / raw)
To: community
>> > > Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
> > Михаил, вы единственный оптимист в community@! :)
>
> Да не, просто в своё время споткнулся и узнал про find -depth. :)
В случае моих знакомых все было гораздо готичнее. find'ом они не пользовались. :)
--
Best regards, Michael Isachenkov
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Re: [JT] Поиск и замена
2005-04-19 17:06 ` Michael Shigorin
2005-04-19 17:10 ` Michael Isachenkov
@ 2005-04-19 21:32 ` Olvin
2005-04-20 12:09 ` Michael Shigorin
1 sibling, 1 reply; 19+ messages in thread
From: Olvin @ 2005-04-19 21:32 UTC (permalink / raw)
To: community
Michael Shigorin wrote:
>>>Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
>>Михаил, вы единственный оптимист в community@! :)
> Да не, просто в своё время споткнулся и узнал про find -depth. :)
Мне кажется, что -depth тут не сильно помогло бы :)
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Comm] Re: [JT] Поиск и замена
2005-04-19 21:32 ` Olvin
@ 2005-04-20 12:09 ` Michael Shigorin
0 siblings, 0 replies; 19+ messages in thread
From: Michael Shigorin @ 2005-04-20 12:09 UTC (permalink / raw)
To: community
On Wed, Apr 20, 2005 at 12:32:27AM +0300, Olvin wrote:
> >>>Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
> >>Михаил, вы единственный оптимист в community@! :)
> >Да не, просто в своё время споткнулся и узнал про find -depth. :)
> Мне кажется, что -depth тут не сильно помогло бы :)
Мне как раз с переименованиями деревьев помогало. ЕМНИП, конечно.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Re: [JT] Поиск и замена
2005-04-19 14:53 ` [Comm] " Michael Shigorin
2005-04-19 16:45 ` Michael Isachenkov
@ 2005-04-20 13:28 ` Andrey Rahmatullin
2005-04-20 13:56 ` Дорогов Николай
1 sibling, 1 reply; 19+ messages in thread
From: Andrey Rahmatullin @ 2005-04-20 13:28 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 308 bytes --]
On Tue, Apr 19, 2005 at 05:53:16PM +0300, Michael Shigorin wrote:
> Если мыслить позитивно -- _вдумчивое_ изучение find(1). :)
convmv(1) для данного случая тоже сойдет ;)
--
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):
Зачем вам понадобился -L/usr/lib?
-- ldv in sisyphus@
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Re: [JT] Поиск и замена
2005-04-20 13:28 ` Andrey Rahmatullin
@ 2005-04-20 13:56 ` Дорогов Николай
0 siblings, 0 replies; 19+ messages in thread
From: Дорогов Николай @ 2005-04-20 13:56 UTC (permalink / raw)
To: community
Проблему поиска и замены текста в файлах с именами по маске
на половину решил следующим скриптом,
который нашел на сайте http://www.vanta.ru/script/info.php?id=498&clas=2
Не хватает прохода по вложенным папкам. А так просто сказочный скриптик.
#!/usr/bin/perl
# ====================================================================
# Copyright (c) 1998-2000 Marcus Kazmierczak, marcus@mkaz.com
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================
#
#
# APP: mksr
# ORIGIN: August 1999
#
# VERSION NUMBER
$ver = "ver 0.0.5";
# Last Modified: November 2000
#
# Auth: Marcus Kazmierczak
# marcus@mkaz.com
# http://blazonry.com/perl/
#
# DESC: Search and Replace
#
print "\nmksr Search and Replace $ver\n";
print "Marcus Kazmierczak, marcus\@mkaz.com\n\n";
# TODO LIST
#
# - ADD Recursion Option
## REQUIRED CPAN MODULES ##
# File::Recurse Module bundled with File-Tools 2.0
# download from CPAN site
(http://www.perl.com/CPAN//modules/by-module/File/)
# use File::Recurse;
####
my $find = $ARGV[0];
my $replace = $ARGV[1];
my $glob = $ARGV[2];
@filelist = <*$glob>;
if ( (!$find) || (!$replace) || (!$glob) ) {
print "Search and replace recursively through the current directory\n";
print "replacing <find> with <replace> in each file specified.\n";
print "To use wildcards leave off the * Ex: '.txt' \n\n";
print " mksr <find> <replace> <file>\n";
exit(0);
}
# process each file in file list
foreach $filename (@filelist) {
print " P: $filename\n";
# retrieve complete file
open (IN, "$filename") || die("Error Reading File: $filename $!");
{
undef $/;
$infile = <IN>;
}
close (IN) || die("Error Closing File: $filename $!");
$infile =~ s/$find/$replace/g;
# write complete file
open (PROD, ">$filename") || die("Error Writing to File: $filename
$!");
print PROD $infile;
close (PROD) || die("Error Closing File: $filename $!");
}
print "\nFinished.\n";
exit(0);
----- Original Message -----
From: "Andrey Rahmatullin" <wrar@altlinux.ru>
To: <community@altlinux.ru>
Sent: Wednesday, April 20, 2005 5:28 PM
Subject: Re: [Comm] Re: [JT] Поиск и замена
> _______________________________________________
> Community mailing list
> Community@altlinux.ru
> https://lists.altlinux.ru/mailman/listinfo/community
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2005-04-20 13:56 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-19 12:20 ` [Comm] Поиск и замена Eugene A. Suchkov
2005-04-19 12:32 ` Alexey Rusakov
2005-04-19 12:51 ` Дорогов Николай
2005-04-19 12:52 ` Alexey Rusakov
2005-04-19 13:08 ` [Comm] [JT] " Michael Isachenkov
2005-04-19 13:12 ` Re[2]: " Anton Gorlov
2005-04-19 13:18 ` Michael Isachenkov
2005-04-19 13:13 ` Olvin
2005-04-19 13:21 ` Alexey Rusakov
2005-04-19 14:02 ` Michael Isachenkov
2005-04-19 14:53 ` [Comm] " Michael Shigorin
2005-04-19 16:45 ` Michael Isachenkov
2005-04-19 17:06 ` Michael Shigorin
2005-04-19 17:10 ` Michael Isachenkov
2005-04-19 21:32 ` Olvin
2005-04-20 12:09 ` Michael Shigorin
2005-04-20 13:28 ` Andrey Rahmatullin
2005-04-20 13:56 ` Дорогов Николай
2005-04-19 12:55 ` [Comm] " Nick S. Grechukh
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git