The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"преоразовать файл"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"преоразовать файл"  
Сообщение от Vlad (??) on 30-Июн-07, 21:27 
Помогите пожалуйста, с такой задачкой.
Имеется файл вида:

a cappella,abbandono,accrescendo,affettuoso,agilmente
a la mode,advanced,avant-garde,chic,contemporary,dashing
a priori,a fortiori,a posteriori,analytic,back,backward

Нужен скрипт (или пнуть куда копать) отсекающий все слова после третьего в каждой строке, включая запятую.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "преоразовать файл"  
Сообщение от allez (ok) on 30-Июн-07, 21:52 
>Помогите пожалуйста, с такой задачкой.
>Имеется файл вида:
>
>a cappella,abbandono,accrescendo,affettuoso,agilmente
>a la mode,advanced,avant-garde,chic,contemporary,dashing
>a priori,a fortiori,a posteriori,analytic,back,backward
>
>Нужен скрипт (или пнуть куда копать) отсекающий все слова после третьего в
>каждой строке, включая запятую.


Вот вам быстренький и грязненький способ :-)

#!/usr/bin/perl -w

use strict;

open (F, $ARGV[0]); # имя файла передаем скрипту как аргумент

my @array;  # объявляем массив

# Начинаем считывать построчно содержимое файла
while (<F>) {
  @array = split(",",$_); # записываем элементы строки в массив, используя запятые как разделители
  print qq($_); # выводим на печать исходную строку
  print qq($array[0] $array[1] $array[2]\n); # а теперь печатаем только три первых элемента массива
}
close F; # закрываем файл


А вот результат работы этого скрипта:
> ./words.pl words.txt
a cappella,abbandono,accrescendo,affettuoso,agilmente
a cappella abbandono accrescendo
a la mode,advanced,avant-garde,chic,contemporary,dashing
a la mode advanced avant-garde
a priori,a fortiori,a posteriori,analytic,back,backward
a priori a fortiori a posteriori
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "преоразовать файл"  
Сообщение от Vlad (??) on 01-Июл-07, 00:12 
Спасибо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "преоразовать файл"  
Сообщение от jd (??) on 01-Июл-07, 11:01 
Кошмар :) Может лучше что-нибудь вроде этого (тоже, впрочем, несовершенного)?

#!/usr/bin/perl -w

while(<>) {
  $_ =~ s/^([^,]*),([^,]*),([^,]*).*$/$1 $2 $3/;
  print;
}

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "преоразовать файл"  
Сообщение от jd (??) on 01-Июл-07, 11:03 
Аналогичное регулярное выражение можно использовать и с sed... Если это единственное, что необходимо проделать с текстом.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "преоразовать файл"  
Сообщение от andy email(??) on 02-Июл-07, 07:33 
еще можно пользовать параметр перла F
нечто вроде

#!/usr/bin/perl -naF,

BEGIN {
  # разделитель выходных записей
  $\ = "\n";
  # разделитель полей вывода
  $, = ",";
}

print @F[1..3];

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "преоразовать файл"  
Сообщение от madskull (??) on 04-Июл-07, 10:21 
Божежмой!
А не проще ли сделать
cut -d, -f -3
?!!

если не нужны запятые, то добавить
tr ',' ' '

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "преоразовать файл"  
Сообщение от allez (ok) on 04-Июл-07, 11:23 
>Божежмой!
>А не проще ли сделать
> cut -d, -f -3
>?!!
>
>если не нужны запятые, то добавить
> tr ',' ' '

Дык товарищ Vlad вроде решение на Perl ищет, иначе зачем ему в "перловый" подраздел
писать? Хотя, конечно, он мог и просто промахнуться, но это лучше уже у него спросить...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "преоразовать файл"  
Сообщение от madskull (??) on 04-Июл-07, 12:06 
>>Божежмой!
>>А не проще ли сделать
>> cut -d, -f -3
>>?!!
>>
>>если не нужны запятые, то добавить
>> tr ',' ' '
>
>Дык товарищ Vlad вроде решение на Perl ищет, иначе зачем ему в
>"перловый" подраздел
>писать? Хотя, конечно, он мог и просто промахнуться, но это лучше уже
>у него спросить...

Ээ... Тогда да, погорячился я. Сорри.
О том что это про перл, видно только(?) из списка тем, а я из рассылки захожу.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "преоразовать файл"  
Сообщение от allez (ok) on 05-Июл-07, 12:00 
>Ээ... Тогда да, погорячился я. Сорри.
>О том что это про перл, видно только(?) из списка тем, а
>я из рассылки захожу.

Хм, действительно, находясь в теме, невозможно установить, к какому подразделу она
относится. Так что теперь моя очередь говорить "тоды ой". :-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру