Показать полную графическую версию : [решено] Работа из командной строки | Убрать все пробелы в текстовом файле
Хай, Человеки! Может кто знает простое решение, подскажите! Есть маленький текстовый файлик (одна строка), нужно убрать в нем все пробелы и записать результат в другой текстовый файлик. Как это сделать из командной строки? Под виндами нет ничего встроенного, что позволяет это сделать? Если испльзовать какую-нить стороннюю утилиту, то какую из тех, что имеют минимальный размер? Че-то рыскаю в инете, но пока ничего не могу найти...:(
Greyman Убирать надо именно из командной строки?
CyberDaemon
15-06-2007, 13:58
Greyman Файлик один или их много? Командная строка - принципиально? А то ведь его и в блокноте поправить можно - заменить все "пробелы" "ничем"...
Написать простенькую программу самому.
program space;
var
str:string;
i:integer;
begin
read(str);
for i:=1 to length(str) do begin
if str(i) <> " " then write str(i);
end;
end.
Далее через перенапрвление выводов. См "Использование фильтров" в справке. Там все хорошо написанно, лучше я не смогу.
+ там команды нужные описанны more например
CyberDaemon
15-06-2007, 14:09
LXA85 И скомпилировать эту шнягу как консольное приложение :) А еще можно параметры командной строки использовать, тогда перенаправление не понадобится. А если командная строка пуста - вывести справку. Получится утилитка. Написать, чтоли? :)
Пиши! Видишь Greyman в панике :) У меня книг по С++ под руками нет, а без них не могу. В С++ я не силен.
CyberDaemon
15-06-2007, 16:02
LXA85 Да тут непринципиально на чем. :)
Greyman Лови :)
Использование: SpcRemov входной_файл выходной_файл
Пойдет? :)
Да, работать надо именно из командной строки. Если бы я знак как заставить блокнот править текст нужным образом, но из командной строки - это бы подошло. За одну команду пробелы удаляюися из одного файла (однострочного), при необходимости команду можно и повторять. Вариант с простой прогой самому тоже сразу пришел в голову, но пытался найти таки уже готовое решнение.
CyberDaemon
Сипасиба! Посмотрим-с будет ли этого достаточно...
Однако вопрос с уже готовым решением по обработке текста из командной строки все еще остается интересным. если у кого есть какие идеи - вэлкам!
vadimiron
16-06-2007, 13:36
Greyman
я бы тоже PHP или PERL посоветовал бы - их компилировать нe нужно и код (по крайней мере в PHP) можно прям в командной строке в качестве параметра писать - всего лишь вызов одной-двух функций
Greyman
первое что приходит в голову - GNU Sed for Windows (http://gnuwin32.sourceforge.net/packages/sed.htm),
и еще помнится в ресурс-ките (http://www.petri.co.il/download_free_reskit_tools.htm) NT4 была утилитка MUNGE.EXE, например:MUNGE munge.ini file.txtгде содержимое файла munge.ini для стрипа пробелов:" " ""
Да, MUNGE бы подошла, тока вот не могу пока найти ее, чтоб скачать. Из альтернатив нашел еще InfoRapid Search & Replace (http://www.inforapid.de/html/searchreplace.htm) (1014 Kb) и Gawk for Windows (http://gnuwin32.sourceforge.net/packages/gawk.htm) (623 Kb). "Sed for Windows" весит 282 Кб. Мне кажется, что MUNGE все же поменьше должна быть, поищем-с...
Нашел таки MUNGE, Ура! Это то, что нужно, всего 10 килов в архиве! Спасибо amel27 асче раз! Скачать ее , кому тоже интересно, можно отсель:
http://www.dynawell.com/reskit/microsoft/win2000/munge.zip
#!/usr/local/bin/perl -w
use strict;
my ($in, $out) = @ARGV;
my @a;
open IN, "<$in" or die "Can't ope file: $!";
while(<IN>) {
$_ =~ s/ //g;
unshift (@a, $_);
}
close IN;
open OUT, ">$out" or die "Can't ope file: $!";
foreach (@a) {
print OUT $_;
}
close OUT;
Вот программка на PERL. Копируешь код в текстовый файл, например с именем test.pl. Далее из командной строки вызваешь:
#perl test.pl file_in file_out
Где file_in - Имя файла, где нужно убрать пробелы. file_out - Имя файла, куда будет помещён текст из 1-го, тока без пробелов.
Написан на скорую руку, но работает. =)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.