The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



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
sed zoekopdracht gopsman Programmeren en Shell Scripting 4 02-03-2009 02:41
& In SQL-query Lindarella Programmeren en Shell Scripting 3 10-09-2006 05:43 PM
Query in awk raguramtgr UNIX voor Dummies Questions & Answers 1 08-27-2004 12:00
RPM Query silvaman UNIX for Advanced & Expert Gebruikers 1 08-15-2003 08:56

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 12-07-2006
grinder182533 grinder182533 is offline
Geregistreerde gebruiker
  
 

Join Date: november 2006
Posts: 17
sed zoekopdracht

Ik heb een aantal mappen / temp / a / temp / b / temp / c

In mappen a, b en c, ik heb bestanden
a1.txt ... ... .... a20.txt
b1.txt ... ... .... b40.txt &
c1.txt ... ... .... c60.txt

Elk bestand heeft de gegevens in dezelfde vorm: --

Lijn 1 aaaaa aaaa
Lijn 2 BBB bbbbbb
Lijn 3 cccc cccccc
Etc etc

Ik moet het schrijven van een sed script dat komt door alle bestanden en het formaat van de gegevens dus: --

Lijn 1 aaaaa aaaa
Lijn 2 BBB
Lijn 3 X bbbbbb
Lijn 4 cccc cccccc
Etc etc

Dus ik moet u een CR / LF in lijn 2 positie 4,
creëren van een nieuwe lijn 3 met een constante tekst (X) en de waarde van wat er aan de rechterkant van de vorige regel 2 (bbbbbb)
en verplaats de rest van de regels een regel omlaag.

Kan iemand helpen alstublieft?
Ik weet het niet sed heel goed, en awk helemaal niet.
  #2 (permalink)  
Old 12-07-2006
blowtorch's Avatar
steekvlam blowtorch is offline Forum Advisor  
Supporter
  
 

Join Date: december 2004
Locatie: Singapore
Berichten: 2350
Werkt dit?
Code:
awk '{if(NR==2) print $1,"\nX",$2; else print}' filename > filename.new
mv filename.new filename
Doe dit via een lus over elk bestand.

Merk op dat ik heb verondersteld dat de tekst in uw bestanden is net als jij blijkt dat (precies hetzelfde aantal en de plaats van spaties worden specifieke). Ook al is het je niet alleen nodig om de awk een beetje.
  #3 (permalink)  
Old 12-08-2006
anbu23 anbu23 is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Datum: maart 2006
Locatie: Bangalore, India
Posts: 1.398
SED oplossing

Code:
cd /a
for file in *
do
    sed "2 s/\(...\).\(.*\)/\1\\
    X \2/" $file > tmp
    mv tmp $file
done
  #4 (permalink)  
Old 12-08-2006
grinder182533 grinder182533 is offline
Geregistreerde gebruiker
  
 

Join Date: november 2006
Posts: 17
sed oplossing

Dankzij Anbu23
Toen ik gisteren gepost, ik vereenvoudigde mijn probleem, denk dat ik kon volgen uw logica, en toepassen op mijn eigenlijke probleem.
In feite is het lijn 5 positie 32 voordat die de CR / LF wordt ingevoegd.
De nieuwe lijn 6 bevat vaste tekst van positie 1 tot en met 31 inclusieve, (X)
en plaats 32 tot 34 van lijn 5 zal zijn gedaald tot dezelfde posities op lijn 6.
Ik probeerde
sed "5 s / \ (... \). \ (.* \) / \ 1 \ \
X \ 2 / '$ bestand> tmp
maar dit nog gemorst na 3 karakters.

Ik probeerde
sed "5 s / \ (............................. \). \ (.* \) / \ 1 \ \
X \ 2 / '$ bestand> tmp
maar kreeg een syntaxisfout.
Hoop dat u verder kan helpen.
Bedankt
  #5 (permalink)  
Old 12-08-2006
anbu23 anbu23 is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Datum: maart 2006
Locatie: Bangalore, India
Posts: 1.398
Voorheen u verteld dat na de eerste paar tekens in sommige lijn moet worden verplaatst naar de volgende regel met X. Maar nu je vertellen dat je moet eerste char en X en resterende char in nieuwe line.I ben niet in staat om je te halen.
Kunt u mij voorbeeld?
  #6 (permalink)  
Old 12-08-2006
grinder182533 grinder182533 is offline
Geregistreerde gebruiker
  
 

Join Date: november 2006
Posts: 17
sed voorbeeld

Hi Anbu23

input

Ref: 12345678 ^ M
Prijs Datum: 28-mei-2006 ^ M
Debet A / c: 54321235 - abcdef ^ M
Klant: 100210547 - abcdef ^ M
Debet Bedrag: 9999999999,00 USD ^ M
Beschrijving: draad aan Wxxxxxx ^ M
^ M
Exchange Rate: 1,00000 ^ M
etc etc

moeten veranderen in

Ref: 12345678 ^ M
Prijs Datum: 28-mei-2006 ^ M
Debet A / c: 54321235 - abcdef ^ M
Klant: 100210547 - abcdef ^ M
Debet Bedrag: 9999999999,00 ^ M
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx USD ^ M
Beschrijving: draad aan Wxxxxxx ^ M
^ M
Exchange Rate: 1,00000 ^ M
etc etc

knippen & plakken heeft gecompenseerd het display aangehaald,
maar mijn eerdere lijn 5 positie 31 wordt nauwkeurig.
Houd er ook rekening mee dat er veel records in elk bestand,
en al moeten worden geformatteerd.
Veel dank nogmaals
Ik heb waardering voor uw steun.
  #7 (permalink)  
Old 12-08-2006
cskumar cskumar is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2005
Posts: 67
probeer dit een

awk '(if (match ($ 0, "USD")) (print $ 1 $ 2 $ 3, "\ nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", $ 4) print $ 0)' bestand> newfile

Ik hoop USD komen alleen in Debet Bedrag: veld.

Groeten,
cskumar
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 11:07 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0