The UNIX and Linux Forums  

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
vervanging van de ruimte met pijp (scheidingstekens) OSD UNIX voor Dummies Questions & Answers 6 02-16-2009 04:38
een betere manier te verwijderen witregels csmklee Programmeren en Shell Scripting 3 01-13-2009 02:42
Vervanging URL in een bestand met de ruimte dsrookie UNIX voor Dummies Questions & Answers 5 02-29-2008 04:58
Newbie? Hulp nodig met Als / Dan & Line breaks ... kthatch UNIX voor Dummies Questions & Answers 1 05-01-2007 08:44 PM
Het verwijderen van regeleinden van een shell-variabele lyonsd Programmeren en Shell Scripting 5 09-12-2006 02:42 PM

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 04-21-2009
mshulman1980 mshulman1980 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posten: 4
Exclamation shell vervanging van de ruimte met regeleinden

Ik ben het ontleden door een grote lslpp-LC-output-bestand met een for-lus. Het bestand bevat veel lijnen vergelijkbaar met dit:
zip: zip-2,3-3: 2.3::: C: R: Een bestand compressie en verpakking nut compatibel met PKZIP.:: / bin / rpm-e zip::::: 0:

Er lijkt geen gespecialiseerde of geheime opmaak in het bestand.
Echter, wanneer ik probeer via het lezen van het bestand in een lus, terwijl in een shell script, breekt het op elke ruimte als een lijn te breken, en elke lijn breken als een dubbele break.
Hieronder is de code:

Code:
#!/usr/bin/ksh
for i in `cat -n servername.lpp`
do 
echo "$i"
done

Het vreemde is dat de kat niet lijkt op te merken dat de lijnen worden opgebroken, zoals aangegeven door de output hieronder.
Ik heb ook geprobeerd lezen in het bestand met een tweede perl script (voor i in `perl perlscript.pl) en ik heb precies hetzelfde probleem.

Uitvoer van het invoeren van de

Uitvoer van script bestand:

Code:
 1
#Package
Name:Fileset:Level:State:PTF
Id:Fix
State:Type:Description:Destination
Dir.:Uninstaller:Message
Catalog:Message
Set:Message
Number:Parent:Automatic:EFIX
Locked:Install
Path:Build
Date
2
Java14.sdk:Java14.sdk:1.4.2.175:
:
:C:F:Java
SDK
32-bit:
:
:
:
:
:
:0:0:/:


Ik heb ook geprobeerd dit met bash-shell opgegeven. Ik weet niet zeker hoe dit op te lossen. Any help would be appreciated.

Laatst bewerkt door mshulman1980; op 04.21.2009 02:38 PM.. Reden: quote tag vervangen met de code-tag om te voorkomen dat auto emoticon invoegen
  #2 (permalink)  
Old 04-21-2009
devtakh devtakh is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Locatie: Bangalore
Posts: 514
Geef een monster input en de verwachte output file


sante,
Devaraj Takhellambam
  #3 (permalink)  
Old 04-21-2009
mshulman1980 mshulman1980 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posten: 4
Monster ingang:
[CODE]
readline: readline-4,3-2: 4.3::: C: R: Een bibliotheek voor het lezen en de terugkeer lijnen van een terminal.:: / bin / rpm-e readline::::: 0:
sudo: sudo-1.6.7p5-3: 1.6.7p5::: C: R: hiermee beperkt root-toegang voor bepaalde gebruikers.:: / bin / sudo rpm-e::::: 0:
unzip: unzip-5,51-1: 5.51::: C: R: Een hulpprogramma voor het uitpakken van zip-bestanden.:: / bin / rpm-e unzip::::: 0:
wget: wget-1.9.1-1: 1.9.1::: C: R: Een hulpprogramma voor het ophalen van bestanden met behulp van de HTTP-of FTP-protocollen.:: / bin / rpm-e wget::::: 0:
zip: zip-2,3-3: 2.3::: C: R: Een bestand compressie en verpakking nut compatibel met PKZIP.:: / bin / rpm-e zip::::: 0:

[/ CODE]

de productie moet worden identiek. Zodra ik in staat ben om elke regel in het geheugen te laden, zal ik ontleden door de lijnen.
  #4 (permalink)  
Old 04-21-2009
giannicello giannicello is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2001
Locatie: Phoenix
Posts: 169
Ik zou gebruik maken van een while-lus ... bijvoorbeeld:

IFS \u003d ":"
terwijl read line; doen
echo $ regel
gedaan <servername.lpp
  #5 (permalink)  
Old 04-21-2009
mshulman1980 mshulman1980 is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posten: 4
giannicello: thanks!

Ik gevoegd het script om de dubbele punten terug invoegtoepassing voor later parsing.

#! / bin / bash
IFS \u003d ":"
terwijl read line; doen
echo $ regel
gedaan <servername.lpp | tr '' ':'
  #6 (permalink)  
Old 04-21-2009
devtakh devtakh is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Locatie: Bangalore
Posts: 514
proberen met behulp van een while-lus in plaats ... uw probleem lijkt te zijn vanwege de echo commando

terwijl gelezen lijn
doen
echo $ regel
gedaan < "bestandsnaam"

Als u wilt dat de lijn nummer ook:

i \u003d 1; terwijl read line; do echo "$ i $ line"; i \u003d `expr $ i + 1`; gedaan < "bestandsnaam"


sante,
Devaraj Takhellambam
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 08:22 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