The OpenNET Project / Index page

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

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

"Редактирование текстового файла. Нужна помощь."  +/
Сообщение от Mariarch1 email on 09-Сен-14, 14:16 
Помогите пожалуйста решить задачу.
Фрагмент исходного кода.
Xmx3 mux_32_3 $PINS mux_out=mux_w[3] a[4]=ADDR[12] a[3]=ADDR[11] a[2]=ADDR[10]
+ a[1]=ADDR[9] a[0]=ADDR[8] d[31]=BL[127] d[30]=BL[126] d[29]=BL[125]
+ d[28]=BL[124] d[27]=BL[123] d[26]=BL[122] d[25]=BL[121] d[24]=BL[120]
+ d[23]=BL[119] d[22]=BL[118] d[21]=BL[117] d[20]=BL[116] d[19]=BL[115]
+ d[18]=BL[114] d[17]=BL[113] d[16]=BL[112] d[15]=BL[111] d[14]=BL[110]
+ d[13]=BL[109] d[12]=BL[108] d[11]=BL[107] d[10]=BL[106] d[9]=BL[105]
+ d[8]=BL[104] d[7]=BL[103] d[6]=BL[102] d[5]=BL[101] d[4]=BL[100] d[3]=BL[99]
+ d[2]=BL[98] d[1]=BL[97] d[0]=BL[96]
Xmx4 mux_32_4 $PINS mux_out=mux_w[4] a[4]=ADDR[12] a[3]=ADDR[11] a[2]=ADDR[10]
+ a[1]=ADDR[9] a[0]=ADDR[8] d[31]=BL[159] d[30]=BL[158] d[29]=BL[157]
+ d[28]=BL[156] d[27]=BL[155] d[26]=BL[154] d[25]=BL[153] d[24]=BL[152]
+ d[23]=BL[151] d[22]=BL[150] d[21]=BL[149] d[20]=BL[148] d[19]=BL[147]
+ d[18]=BL[146] d[17]=BL[145] d[16]=BL[144] d[15]=BL[143] d[14]=BL[142]
+ d[13]=BL[141] d[12]=BL[140] d[11]=BL[139] d[10]=BL[138] d[9]=BL[137]
+ d[8]=BL[136] d[7]=BL[135] d[6]=BL[134] d[5]=BL[133] d[4]=BL[132] d[3]=BL[131]
+ d[2]=BL[130] d[1]=BL[129] d[0]=BL[128]

Нужно вырезать 2ое слово в строке начинающейся с X, вставить его в последнюю строку, начинающуюся с + данного модуля. Если следующая строка начинается не с +, то это уже другой модуль. Также из всего текста нужно удалить конструкции ...=, $PINS.

Есть скрипт, который работает для однострочных модулей, но как описать это для модулей с переносом (начинающихся на +) я не знаю, ибо Perlом занимаюсь 1 день.

Вот скрипт:
#!/usr/bin/perl
open RFILE,"file1.txt";
open WFILE,">/file2.txt";

while (<RFILE>){
my @line;
chomp;
$l = $_;
$l =~ s/[a-z]=//g;
#$l =~ s/ .*?=/ /g;
$l =~ s/ \$PINS//g;
    if ($l =~ m/^X.*/){
    @line = split(/ +/,$l);
    $line[$#line+1] = "vdd! gnd! ".$line[1];
    $line[1] = "";
$l = join(" ",@line);
              }
    {
    print WFILE $l,"\n";
    }
        }
close WFILE;
close RFILE;

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Редактирование текстового файла. Нужна помощь."  +/
Сообщение от тень_pavel_simple on 10-Сен-14, 08:11 
>[оверквотинг удален]
>  $line[$#line+1] = "vdd! gnd! ".$line[1];
>  $line[1] = "";
> $l = join(" ",@line);
>      }
>  {
>  print WFILE $l,"\n";
>  }
>   }
> close WFILE;
> close RFILE;

cat 1.txt | tr -d '\n' | sed 's/\(X.*\)\$PINS\(.*\)/\2\1/g'| tr + '\n+'

Андрей Митрофанов может кунг-фу сделать

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Редактирование текстового файла. Нужна помощь."  +/
Сообщение от тень_pavel_simple on 10-Сен-14, 08:46 
>[оверквотинг удален]
>> $l = join(" ",@line);
>>      }
>>  {
>>  print WFILE $l,"\n";
>>  }
>>   }
>> close WFILE;
>> close RFILE;
> cat 1.txt | tr -d '\n' | sed 's/\(X.*\)\$PINS\(.*\)/\2\1/g'| tr + '\n+'
> Андрей Митрофанов может кунг-фу сделать

cat 1.txt | sed ':a;N;$!ba;s/\n+/+/g;' | sed 's/^\(X.*\)\$PINS\(.*\)/\2\1/g'

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Редактирование текстового файла. Нужна помощь."  +/
Сообщение от тень_pavel_simple on 10-Сен-14, 08:50 
>[оверквотинг удален]
>>>      }
>>>  {
>>>  print WFILE $l,"\n";
>>>  }
>>>   }
>>> close WFILE;
>>> close RFILE;
>> cat 1.txt | tr -d '\n' | sed 's/\(X.*\)\$PINS\(.*\)/\2\1/g'| tr + '\n+'
>> Андрей Митрофанов может кунг-фу сделать
> cat 1.txt | sed ':a;N;$!ba;s/\n+/+/g;' | sed 's/^\(X.*\)\$PINS\(.*\)/\2\1/g'

cat 1.txt | sed ':a;N;$!ba;s/\n+/+/g;' | sed 's/^\(X.*\)\ \(.*\)\ \$PINS\(.*\)/\2\3\1/g'

и всё равно где-нибудь ошибка Ж:)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Редактирование текстового файла. Нужна помощь."  +/
Сообщение от pavlinux (ok) on 13-Сен-14, 00:38 
> Андрей Митрофанов может кунг-фу сделать

Митрофаныч перл не любит.


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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