![]() |
|
|
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 |
| Unix Arithmatic drift fråga datatyp fråga | thambi | Shell-programmering och Skript | 23 | 02-19-2008 07:19 |
| specifing rad .... | zedex | UNIX för avancerade & Expertanvändare | 1 | 10-19-2007 10:07 |
| Få "utom räckhåll" när partitioneringen | pmichner | UNIX for Dummies Frågor & Svar | 1 | 09-30-2006 02:51 |
| Titta en sträng inom en rad! | azmathshaikh | Shell-programmering och Skript | 0 | 05-01-2005 04:54 |
| Unix SCO 5.0.6 utom räckhåll | josramon | UNIX for Dummies Frågor & Svar | 5 | 02-21-2003 02:06 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Sed Range Utgåva
OK, så för en stor översikt av vad jag försöker göra:
Jag har 2 filer som oftast gillar. Filformatet är: [descriptor1] data data data data [descriptor2] data data data data [descriptor3] data data [descriptor4] data data OK, så vad jag behöver göra är att ta alla uppgifter från [descriptor2] och [descriptor3] avsnitten från fil1, ta gärna avsnitt ur fil2 och sätt sedan in ström från fil1 i rätt plats i fil2. Kul, va? Tja, jag är ny w / sed, Men det verkar vara det bästa sättet att göra detta (rätta mig om jag är fel). Jag har en del kod som arbetsspråk atm, men det ger mig faktiskt line [descriptor4] som är det sista området jag använder och jag inte vill att det ska vara att i avsnittet bort, hur gör jag inte göra det göra det? sed '/ \ [descriptor2 /, / \ [descriptor4 /! d'fil1 I princip vill jag att produktionen ska vara: [descriptor2] data data data data [descriptor3] data data Och det ger mig allt detta, plus ett [descriptor4] eftersom det är där de olika ändarna, men jag är inte säker på hur andra att definiera den. Tack för alla ljus man kan fälla! |
|
||||
|
Prova detta: Kod:
awk '
FNR==NR && /descriptor2/{f=1}
FNR==NR && /descriptor4/{f=0}
FNR==NR && f{arr[++i]=$0}
FNR==NR{next}
/descriptor2/{for(j=1;j<=i;j++){print arr[j]};f=1}
/descriptor4/{f=0}
!f{print}
' "file1" "file2"
Hälsningar |