![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Hur man sätter i och ta bort raden efter önskan linje | RahulJoshi | Shell-programmering och Skript | 4 | 10-20-2008 11:27 |
| Behöver Script för att infoga kolon i varje rad i filen | canopus15 | UNIX for Dummies Frågor & Svar | 4 | 08-05-2008 09:03 |
| infoga en linje efter specifik linje | namishtiwari | Shell-programmering och Skript | 8 | 05-21-2008 03:16 |
| Hur man sätter ny rad i datafilen med hjälp av skript | Sona | UNIX for Dummies Frågor & Svar | 2 | 08-22-2006 02:17 |
| Infoga en linje som den första raden i en mycket stor fil | tjuta | UNIX för avancerade & Expertanvändare | 3 | 03-09-2005 01:22 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
awk-skript för att jämföra och infoga en linje
Hej
Jag vill jämföra en sträng på fasta ståndpunkt 10-20 för alla rader som börjar med 6. Om de inte matchar det bör ta en kopia av en linje som börjar med 1 och för in den före raden som börjar med 6. Hur gör jag detta? Please help Eg 1 test 1 765533 7643743 6 ja 3 5363653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 7 323323 4343434435 545 6 ja 3 5373653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 6 ja 3 5373653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 6 ja 3 5383653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 så produktionen bör 1 test 1 765533 7643743 6 ja 3 5363653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 7 323323 4343434435 545 1 test 1 765533 7643743 6 ja 3 5373653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 6 ja 3 5373653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 1 test 1 765533 7643743 6 ja 3 5383653 373833 7 323323 4343434435 545 8 4345435435 5454545 55 |
|
||||
|
perl: Kod:
open FH,"<d:/a.txt";
while(<FH>){
if(m/^1.*/){
$line=$_;
print;
next;
}
if(m/^6.*/){
@t=split;
if($temp eq ""){
$temp=$t[3];
print;
}
else{
if(!($t[3] eq $temp)){
print $line;
print $_;
$temp=$t[3];
}
else{
print;
}
}
}
else{print;}
}
|