The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
grep bruke datoformatet ali560045 Shell programmering og Skripting 4 12-26-2007 08:59
grep bruke datoformatet ali560045 Shell programmering og Skripting 8 12-11-2007 06:39
Hvordan forbereder jeg meg en C + + kode (c code) for å gjennomføre mine egne protokollformatet amitpansuria High Level Programmering 1 09-07-2007 12:09
hvordan du formaterer et grep kommandoen jasongr Shell programmering og Skripting 2 11-18-2005 02:07
Hvordan formatere nummer / strengen i ksh GNMIKE Shell programmering og Skripting 2 07-03-2005 04:44

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 10-01-2008
krishna.fuji krishna.fuji is offline
Registrert bruker
  
 

Bli Dato: Oct 2008
Innlegg: 5
Thumbs up Grep, deretter formatere deretter utarbeide en streng

Hei

Jeg har en fil som har linje like nedenfor

Personal Unit \u003d AU003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110

Når noen gang i fine linjen igangsetting sith Personal Unit og inneholder Plant Institutt jeg må velge denne linjen og formatere den som

Personal Unit \u003d AU003
Plant \u003d B00089
Departmant \u003d D110
-> RAM: AU003: B00089110: system dato: Overskriften i filen

Jeg brukte sed

sed -e '/ Personal Unit / (; h; s /^/#/ p; x;)'-e '/ Business Unit / (s /, Plant / \ nPlant / g'-e 's /, Departmant / \ nDepartmant / g ') FileName

Men det er fullfilling min trenger alle
kanne alle ettall behage foreslå
  #2 (permalink)  
Old 10-02-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4309
Med awk du kan gjøre noe slikt som:
Code:
awk -F, '/^Personal Unit=/&&/Plant/&&/Departmant/{sub("\(.*\)","")}{print $1 OFS $2 OFS $3}' OFS="\n" file
Hilsen
  #3 (permalink)  
Old 10-02-2008
drl's Avatar
drl drl is online now Forum Advisor  
Registrert bruker
  
 

Bli Dato: april 2007
Beliggenhet: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Innlegg: 711
Hei.

Jeg måtte endre sub som så, fra Sitat å kutte:
Code:
#!/usr/bin/env sh

# @(#) user1    Demonstrate 2-level parsing with awk.

#  ____
# /
# |   Infrastructure BEGIN

set -o nounset
echo

## The shebang using "env" line is designed for portability. For
#  higher security, use:
#
#  #!/bin/sh -

## Use local command version for the commands in this demonstration.

set +o nounset
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version "=o" $(_eat $0 $1) awk
set -o nounset

echo

FILE=${1-data1}
echo " Input file $FILE:"
cat $FILE

# Use nawk or /usr/xpg4/bin/awk on Solaris.

# |   Infrastructure END
# \
#  ---


echo
echo " Results from awk:"
awk -F, '
/^Personal Unit=/ && /Plant/ && /Departmant/ {sub(/\(.*\)/,"")}
        {print $1 OFS $2 OFS $3}
' OFS="\n" $FILE

exit 0
Produksjon:
Code:
% ./user1

(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
GNU Awk 3.1.4

 Input file data1:
Personal Unit=AU003 (Industrial Products Division),Plant=B00089,Departmant=D110

 Results from awk:
Personal Unit=AU003
Plant=B00089
Departmant=D110
Skål, drl
  #4 (permalink)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registrert bruker
  
 

Bli Dato: Oct 2008
Innlegg: 5
dens ikke nøyaktig output hva vi forventet

Sitat:
Originally Posted by drl View Post
Hei.

Jeg måtte endre sub som så, fra Sitat å kutte:
Code:
#!/usr/bin/env sh
 
# @(#) user1    Demonstrate 2-level parsing with awk.
 
#  ____
# /
# |   Infrastructure BEGIN
 
set -o nounset
echo
 
## The shebang using "env" line is designed for portability. For
#  higher security, use:
#
#  #!/bin/sh -
 
## Use local command version for the commands in this demonstration.
 
set +o nounset
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version "=o" $(_eat $0 $1) awk
set -o nounset
 
echo
 
FILE=${1-data1}
echo " Input file $FILE:"
cat $FILE
 
# Use nawk or /usr/xpg4/bin/awk on Solaris.
 
# |   Infrastructure END
# \
#  ---
 
 
echo
echo " Results from awk:"
awk -F, '
/^Personal Unit=/ && /Plant/ && /Departmant/ {sub(/\(.*\)/,"")}
        {print $1 OFS $2 OFS $3}
' OFS="\n" $FILE
 
exit 0
Produksjon:
Code:
% ./user1
 
(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
GNU Awk 3.1.4
 
 Input file data1:
Personal Unit=AU003 (Industrial Products Division),Plant=B00089,Departmant=D110
 
 Results from awk:
Personal Unit=AU003
Plant=B00089
Departmant=D110
Skål, drl


Hei Jeg har flere linjer i dette skriptet. Så snart den fine setningen immediatly det har å returnere gitt ut satt. mer i løpet av de nedenfor nevnte ekstra linje er det ikke å gi. Jeg skal være veldig takknemlig om å gjøre det
  #5 (permalink)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registrert bruker
  
 

Bli Dato: Oct 2008
Innlegg: 5
Sitat:
Originally Posted by krishna.fuji View Post
Hei Jeg har flere linjer i dette skriptet. Så snart den fine setningen immediatly det har å returnere gitt ut satt. mer i løpet av de nedenfor nevnte ekstra linje er det ikke å gi. Jeg skal være veldig takknemlig om å gjøre det

[Krishna @ newtrans-test ~] $ cat ram1
Personal Unit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Dette er min egen
Personal Unit \u003d US003 (Industri / Products Division), Plant \u003d B00089, Departmant \u003d D110
Vi trenger å makfmkldfd
Personal Unit \u003d US004 (Consumer Products Div) Plant \u003d B00089, Departmant \u003d D1119
mdkmvckldmldm
Dette er en ide når søppelpost av data i arkiv
Personal Unit \u003d US004 (Consumer Products Div), Plant \u003d B00078, Departmant \u003d D111
Personal Unit \u003d US006 (Stasjonært Mfg Division), Plant \u003d B00089, Departmant \u003d D1188
Personal Unit \u003d US007 (Lim Division), Plant \u003d B00089, Departmant \u003d D110
Personal Unit \u003d US009 (Adhesives Division)
Personal Unit \u003d US010 (Adhesives Division)

[Krishna @ newtrans-test ~] $ sed -e '/ Personal Unit / (; h; s /^/#/ p; x;)'-e '/ Personal Unit / (s /, Plant / \ nPlant / g'-e 's /, Departmant / \ nDepartmant / g ') ram1
# Personal Unit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Personal Unit \u003d US003 (Industrial Products Division)
Plant \u003d B00089
Departmant \u003d D110
Dette er min egen
# Personal Unit \u003d US003 (Industri / Products Division), Plant \u003d B00089, Departmant \u003d D110
Personal Unit \u003d US003 (Industri / Products Division)
Plant \u003d B00089
Departmant \u003d D110
Vi trenger å makfmkldfd
# Personal Unit \u003d US004 (Consumer Products Div) Plant \u003d B00089, Departmant \u003d D1119
Personal Unit \u003d US004 (Consumer Products Div) Plant \u003d B00089
Departmant \u003d D1119
mdkmvckldmldm
Dette er en ide når søppelpost av data i arkiv
# Personal Unit \u003d US004 (Consumer Products Div), Plant \u003d B00078, Departmant \u003d D111
Personal Unit \u003d US004 (Consumer Products Div)
Plant \u003d B00078
Departmant \u003d D111
# Personal Unit \u003d US006 (Stasjonært Mfg Division), Plant \u003d B00089, Departmant \u003d D1188
Personal Unit \u003d US006 (Stasjonært Mfg Division)
Plant \u003d B00089
Departmant \u003d D1188
# Personal Unit \u003d US007 (Lim Division), Plant \u003d B00089, Departmant \u003d D110
Personal Unit \u003d US007 (Adhesives Division)
Plant \u003d B00089
Departmant \u003d D110
# Personal Unit \u003d US009 (Adhesives Division)
Personal Unit \u003d US009 (Adhesives Division)
# Personal Unit \u003d US010 (Adhesives Division)
Personal Unit \u003d US010 (Adhesives Division)
[Krishna @ newtrans-test ~] $

Sammen med dette hvor enn jeg splitte den raden jeg trenger å få en kombinasjon av verdiene
Like
-> RAM: US007: B00089110: systendate: fileheader
Konklusjonen er
uansett hvor jeg finner
Personal Unit \u003d US007 (Lim Division), Plant \u003d B00089, Departmant \u003d D110
immediatly neste linje må
Personal Unit \u003d US007 (Lim Division), Plant \u003d B00089, Departmant \u003d D110
Personal Unit \u003d US007 (Adhesives Division)
Plant \u003d B00089
Departmant \u003d D110

-> RAM: US007: B00089110: systendate: fileheader

og viktig er dette skriptet må ta bare linjen som har kombinasjonen av Personal Unit, Plant, Institutt i en enkelt linje
Hvis du kan gjøre dette for meg, takk en meget

Sist endret av krishna.fuji; 10-03-2008 kl 03:29..
  #6 (permalink)  
Old 10-03-2008
danmero danmero is offline Forum Advisor  
  
 

Bli Dato: november 2007
Beliggenhet: 45.48-73.63
Innlegg: 1428
Sitat:
Originally Posted by krishna.fuji View Post
og viktig er dette skriptet må ta bare linjen som har kombinasjonen av Personal Unit, Plant, Institutt i en enkelt linje
Glem fancy farger, og bruk code tags Når du legger kode eller data.
Code:
awk -F, '{if(/Personal Unit/&&/Plant/&&/Departmant/){printf "# %s\n%s\n%s\n%s\n",$0,$1,$2,$3}else{print}}' file
  #7 (permalink)  
Old 10-02-2008
danmero danmero is offline Forum Advisor  
  
 

Bli Dato: november 2007
Beliggenhet: 45.48-73.63
Innlegg: 1428
En annen awk løsning.
Code:
awk -F'[(|,|)]' '/^Personal/{printf "%s\n%s\n%s\n",$1,$4,$5}' file
Closed Thread

Hugseliste

Tags
linux-kommandoer

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 07:27.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0