TwojePC.pl © 2001 - 2025
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Linux - jak polaczyc kilka wieszy , Deus ex machine 23/12/08 21:40 za pomoca linii komend. mam w pliku np
wiersz1
wiersz2;aaaaa
wiersz3
wiersz4
wiersz5;bbb
wiersz6
chcialbym uzyskac
wiersz1;wiersz2;aaaaa;wiersz3
wiersz4;wiersz5;bbb;wiersz6
a jakby sie dalo jeszcze zapamietywac w zmiennych i porownywac (bo wierszXX to wartosci numeryczne) to byloby cudnie .)"Uti non Abuti" - jak sądzę, sed lub awk powinny pomóc , bwana 23/12/08 23:05
niestety, nie umiem pisać skryptów dla tych narzędzi."you don't need your smile when I cut
your throat" - hmm ? , DrLamok 23/12/08 23:33
o zoooo chozzziii ?
wiersz xx to wartosci numeryczne ?
i co ma się porównywac z czym ?
moze wrzuć jednak kawałek tego pliku coby obadac.. zaraz cos w perlu naskrobie tylko sie umyje i przebiore :P- wyglada to tak , Deus ex machine 24/12/08 00:05
10
12:AAB
14
16
20:AAB
22
24
26:BAC
28
a chcialbym zeby wygladalo tak
10:14:AAB
16:22:AAB
24:28:BAC
czyli bloki po 3 wiersze maja utworzyc linie
pierwszy wiersz:to co jest po ':' z drugiego:trzeci wiersz
moge takie cos prosto w php machnac, ale z linii komend moze byc szybsze"Uti non Abuti" - zamotałeś się :) , DrLamok 24/12/08 01:48
i za każdym razem piszesz co innego :P
przykładowy wynik nie pasuje do opisu :P
trzymałem sie opisu tekstowego.. czyli
pierwsza linia : drugie pół z drugiej linii : trzecia linia
w sumie nie sadze zeby cokolwiek bylo szybsze niż php :P
ani nawet nie wiem czy o to chodzilo, nie przewidzialem tez napotkania nietypowych danych, wystąpienia średnika w 1 lub 3 linii ani dwóch średnikó w drugiej :P bo nie wiem co tam dokladnie sie ma mielic :P za mało danych dałeś :P i Twój przykład się nie zgadza z opisem..
znak rozdzielajacy drugie linie w źródle jaki uzylem to ;
a znak rozdzielajacy w pliku wynikowym :
nie problem zmienić
---- dupa.pl ----
#!/usr/bin/perl -s
open(IN,$input) || die "RTFM: $!\n";
$cnt=1;
while (<IN>) {
chomp; if($_ =~ m/;/){($smieci,$_) = split(/\;/,$_);} print "$_";
if ($cnt==3) {print "\n";$cnt=0;} else {print ":"}
$cnt++;
}
close(IN);
--- in.txt ---
10
12;AAB
14
16
20;AAB
22
24
26;BAC
28
----------------
sposób użycia...
# wynik na konsole
./dupa.pl -input=in.txt
# wynik do pliku
./dupa.pl -input=in.txt >out.txt
--- wynik działania out.txt ---
10:AAB:14
16:AAB:22
24:BAC:28
------
następnym razem :P więcej danych :P- dzieki wilekie , Deus ex machine 24/12/08 14:45
przeanalizuje. Widac, ze programista po uzytej nazwie skryptu ,)
A namotlalem, bo w pierwszym poscie opisalem jeden z krokow, ktore chcialem wykonac. W nastepnym, juz kilka krokow dalej .)
Ogolnie chce uzyskac tablele zakresow, ale to wiecej pisania .)
Wesolych i wypoczynkowych swiat .)"Uti non Abuti"
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
|
|
|
|