![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| het lezen van tekst bestand regel voor regel | MizzGail | Programmeren en Shell Scripting | 6 | 04-14-2008 07:58 |
| Regel voor regel bestand lezen ... en meer! | ProFiction | Programmeren en Shell Scripting | 6 | 07-26-2007 12:32 |
| Reading regel voor regel uit een bestand | tej.buch | Programmeren en Shell Scripting | 2 | 01-23-2006 02:50 |
| sed niet uitvoeren van de laatste regel van het invoerbestand | 2reperry | Programmeren en Shell Scripting | 3 | 12-16-2005 12:51 |
| Reading regel voor regel uit het bestand. | akpopa | UNIX voor Dummies Questions & Answers | 4 | 08-30-2001 11:20 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hallo iedereen. Ik weet dit is waarschijnlijk een beetje een noob vraag, maar ik ben eigenlijk een C #-ontwikkelaar werkt aan een legacy-systeem, en kan me niet herinneren veel Unix.
Ik wil lezen uit een pijp-delimeted bestand als geformatteerd thusly: IDno | PRODUCT | Naam | Straat Plaats Postcode | enz. | enz. | enz. | enz. IDno | PRODUCT | Naam | Straat Plaats Postcode | enz. | enz. | enz. | enz. IDno | PRODUCT | Naam | Straat Plaats Postcode | enz. | enz. | enz. | enz. Ik wil elke regel te kopiëren naar een ander bestand, afhankelijk van het PRODUCT bestaande in een string variabele I'm bedrijf in het geheugen: "prod1 | prod2 | prod3" ($ producten in voorbeeld hieronder) Daarom heb ik probeerde: voor de lijn in `cat $ temp_dir / $ filename | awk '(print $ 0)'` doen prod \u003d `echo" $ line "| awk 'BEGIN (FS \u003d"|"} (print $ 2)'` valid_prod \u003d `echo $ producten | grep" $ Prod "` if [-n "$ valid_prod"]; dan echo "$ line">> $ new_file.txt fi gedaan Maar deze lijn variabele lijkt te scheiden op basis van ruimtes, het creëren van het nieuwe bestand als: IDno | PRODUCT | Naam | straat stad postcode | enz. | enz. | enz. | enz. Is er toch kan ik elke lijn passeren als een enkele parameter, ongeacht de ruimtes? Elke hulp is dankbaar gewaardeerd, Dave |
|
||||
|
Ifs
kunt manipuleren de IFS (interne field separator) - als voorbeeld - gezien het feit dat go.dat bevat de regels met spaties
# Maak de array, zonder het manipuleren van IFS, zal ruimtes breken de array # set-A-lijnen $ (cat go.dat) voor de lijn in "$ (lijnen [@]}"; doen echo "" $ line " gedaan # Maak de array, maar eerst de IFS (set terug - zeer belangrijk) # Na de array is ingesteld # oIFS \u003d $ IFS IFS IFS \u003d $ (# #?) set-A-lijnen $ (cat go.dat) IFS \u003d $ oIFS voor de lijn in "$ (lijnen [@]}"; doen echo "" $ line " gedaan # # # # # # Go.dat IDno a | PRODUCT | Naam | Straat Plaats Postcode | enz. | enz. | enz. | enz. IDno b | PRODUCT | Naam | Straat Plaats Postcode | enz. | enz. | enz. | enz. IDno c | PRODUCT | Naam | Straat Plaats Postcode | enz. | enz. | enz. | enz. # # # Einde go.dat # # # Ik realiseer me dat niet helpen uw probleem (duisternis vis al beantwoord) dus ik dacht dat ik zou mijn ,02 gooien in ongeveer IFS - sinds ik gebeten door die in het verleden - en het is altijd handig vrij vaak |
|
|||||
|
Zoals u lezen via dit forum, moet je een smaak van de verschillende manieren om een probleem op te lossen. Er zijn kwesties
awk vs grep of gesneden nutteloos kat en vele anderen. Sommige oplossingen kunnen meer robuuste, terwijl anderen gewoon goed uitzien. Dus, niet kleineren arme awk - het serveert geweldige zin voor bepaalde database problemen. |
![]() |
| Bladwijzers |
| Labels |
| awk, bestand, grep of, lezen, ruimten, schrijven |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|