Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Работа из командной строки | Убрать все пробелы в текстовом файле (http://forum.oszone.net/showthread.php?t=85446)

Greyman 15-06-2007 13:03 599626

Работа из командной строки | Убрать все пробелы в текстовом файле
 
Хай, Человеки! Может кто знает простое решение, подскажите! Есть маленький текстовый файлик (одна строка), нужно убрать в нем все пробелы и записать результат в другой текстовый файлик. Как это сделать из командной строки? Под виндами нет ничего встроенного, что позволяет это сделать? Если испльзовать какую-нить стороннюю утилиту, то какую из тех, что имеют минимальный размер? Че-то рыскаю в инете, но пока ничего не могу найти...:(

SimSim 15-06-2007 13:56 599654

Greyman Убирать надо именно из командной строки?

CyberDaemon 15-06-2007 13:58 599655

Greyman Файлик один или их много? Командная строка - принципиально? А то ведь его и в блокноте поправить можно - заменить все "пробелы" "ничем"...

lxa85 15-06-2007 14:02 599658

Написать простенькую программу самому.
Код:

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 599662

LXA85 И скомпилировать эту шнягу как консольное приложение :) А еще можно параметры командной строки использовать, тогда перенаправление не понадобится. А если командная строка пуста - вывести справку. Получится утилитка. Написать, чтоли? :)

lxa85 15-06-2007 15:01 599698

Пиши! Видишь Greyman в панике :) У меня книг по С++ под руками нет, а без них не могу. В С++ я не силен.

CyberDaemon 15-06-2007 16:02 599726

Вложений: 1
LXA85 Да тут непринципиально на чем. :)
Greyman Лови :)
Использование: SpcRemov входной_файл выходной_файл
Пойдет? :)

Greyman 16-06-2007 00:53 599864

Да, работать надо именно из командной строки. Если бы я знак как заставить блокнот править текст нужным образом, но из командной строки - это бы подошло. За одну команду пробелы удаляюися из одного файла (однострочного), при необходимости команду можно и повторять. Вариант с простой прогой самому тоже сразу пришел в голову, но пытался найти таки уже готовое решнение.

CyberDaemon
Сипасиба! Посмотрим-с будет ли этого достаточно...

Однако вопрос с уже готовым решением по обработке текста из командной строки все еще остается интересным. если у кого есть какие идеи - вэлкам!

vadimiron 16-06-2007 13:36 599959

Greyman
я бы тоже PHP или PERL посоветовал бы - их компилировать нe нужно и код (по крайней мере в PHP) можно прям в командной строке в качестве параметра писать - всего лишь вызов одной-двух функций

amel27 17-06-2007 10:54 600275

Greyman
первое что приходит в голову - GNU Sed for Windows,
и еще помнится в ресурс-ките NT4 была утилитка MUNGE.EXE, например:
Код:

MUNGE munge.ini file.txt
где содержимое файла munge.ini для стрипа пробелов:
Код:

" " ""

Greyman 17-06-2007 22:08 600480

Да, MUNGE бы подошла, тока вот не могу пока найти ее, чтоб скачать. Из альтернатив нашел еще InfoRapid Search & Replace (1014 Kb) и Gawk for Windows (623 Kb). "Sed for Windows" весит 282 Кб. Мне кажется, что MUNGE все же поменьше должна быть, поищем-с...

Нашел таки MUNGE, Ура! Это то, что нужно, всего 10 килов в архиве! Спасибо amel27 асче раз! Скачать ее , кому тоже интересно, можно отсель:
http://www.dynawell.com/reskit/micro...2000/munge.zip

SantaXP 17-06-2007 22:44 600497

Код:

#!/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-го, тока без пробелов.
Написан на скорую руку, но работает. =)


Время: 04:47.

Время: 04:47.
© OSzone.net 2001-