The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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
grep använder datumformat ali560045 Shell-programmering och Skript 4 12-26-2007 08:59
grep använder datumformat ali560045 Shell-programmering och Skript 8 12-11-2007 06:39
hur förbereder jag mig ett C + +-kod (c-kod) för mitt eget protokoll format amitpansuria High Level Programming 1 09-06-2007 11:09
hur du formaterar en grep kommandot jasongr Shell-programmering och Skript 2 11-18-2005 02:07
Hur formatera nummer / string i ksh GNMIKE Shell-programmering och Skript 2 07-03-2005 03: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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 10-01-2008
krishna.fuji krishna.fuji is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 5
Thumbs up Grep, sedan format sedan utarbeta en sträng

Hej

Jag har en fil som har rad som nedan

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

När jag någonsin fin linje som utgår sith Personlig enheten och innehåller Plant Institutionen Jag behöver välja denna linje och formatera den som

Personlig Unit \u003d AU003
Plant \u003d B00089
Departmant \u003d D110
-> RAM: AU003: B00089110: system Datum: Rubriken för filen

Jag använde sed

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

Men det är inte fullfilling jag behöver alla
kan någon Vänligen föreslå
  #2 (permalänk)  
Old 10-02-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.300
Med awk kan du göra något liknande:
Kod:
awk -F, '/^Personal Unit=/&&/Plant/&&/Departmant/{sub("\(.*\)","")}{print $1 OFS $2 OFS $3}' OFS="\n" file
Hälsningar
  #3 (permalänk)  
Old 10-02-2008
drl's Avatar
varselljus drl is offline Forum Advisor  
Registered User
  
 

Join Date: april 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Inlägg: 707
Hej.

Jag var tvungen att byta sub som så, från offert till snedstreck:
Kod:
#!/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
Produktion:
Kod:
% ./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, varselljus
  #4 (permalänk)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 5
dess inte exakt output what we expected

Citat:
Ursprungligen postat av varselljus View Post
Hej.

Jag var tvungen att byta sub som så, från offert till snedstreck:
Kod:
#!/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
Produktion:
Kod:
% ./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, varselljus


Hej Jag har flera rader i det här skriptet. Så snart det fina meningen immediatly det återlämna ges ut sätta. mer under nedanstående extra är det ju inte ge. Jag ska vara mycket tacksamma om detta
  #5 (permalänk)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registered User
  
 

Join Date: oktober 2008
Inlägg: 5
Citat:
Ursprungligen postat av krishna.fuji View Post
Hej Jag har flera rader i det här skriptet. Så snart det fina meningen immediatly det återlämna ges ut sätta. mer under nedanstående extra är det ju inte ge. Jag ska vara mycket tacksamma om detta

[Krishna @ newtrans-test ~] $ cat ram1
Personlig Unit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Här är min egen
Personlig Unit \u003d US003 (Industrial / Products Division), Plant \u003d B00089, Departmant \u003d D110
Vi måste makfmkldfd
Personlig Unit \u003d US004 (Consumer Products Div) Plant \u003d B00089, Departmant \u003d D1119
mdkmvckldmldm
Detta är för en viss uppfattning om skräp av data i filen
Personlig Unit \u003d US004 (Consumer Products Div), Plant \u003d B00078, Departmant \u003d D111
Personlig Unit \u003d US006 (Maskiner Mfg Division), Plant \u003d B00089, Departmant \u003d D1188
Personlig Unit \u003d US007 (lim Division), Plant \u003d B00089, Departmant \u003d D110
Personlig Unit \u003d US009 (lim Division)
Personlig Unit \u003d US010 (lim Division)

[Krishna @ newtrans-test ~] $ sed -e '/ Personal Enhet / (, h; s /^/#/ p; x;)'-e '/ Personal Enhet / (s /, Plant / \ nPlant / g'-e 's /, Departmant / \ nDepartmant / g ') ram1
# Personlig Unit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Personlig Unit \u003d US003 (Industrial Products Division)
Plant \u003d B00089
Departmant \u003d D110
Här är min egen
# Personlig Unit \u003d US003 (Industrial / Products Division), Plant \u003d B00089, Departmant \u003d D110
Personlig Unit \u003d US003 (Industrial / Products Division)
Plant \u003d B00089
Departmant \u003d D110
Vi måste makfmkldfd
# Personlig Unit \u003d US004 (Consumer Products Div) Plant \u003d B00089, Departmant \u003d D1119
Personlig Unit \u003d US004 (Consumer Products Div) Plant \u003d B00089
Departmant \u003d D1119
mdkmvckldmldm
Detta är för en viss uppfattning om skräp av data i filen
# Personlig Unit \u003d US004 (Consumer Products Div), Plant \u003d B00078, Departmant \u003d D111
Personlig Unit \u003d US004 (Consumer Products Div)
Plant \u003d B00078
Departmant \u003d D111
# Personlig Unit \u003d US006 (Maskiner Mfg Division), Plant \u003d B00089, Departmant \u003d D1188
Personlig Unit \u003d US006 (Maskiner Mfg Division)
Plant \u003d B00089
Departmant \u003d D1188
# Personlig Unit \u003d US007 (lim Division), Plant \u003d B00089, Departmant \u003d D110
Personlig Unit \u003d US007 (lim Division)
Plant \u003d B00089
Departmant \u003d D110
# Personlig Unit \u003d US009 (lim Division)
Personlig Unit \u003d US009 (lim Division)
# Personlig Unit \u003d US010 (lim Division)
Personlig Unit \u003d US010 (lim Division)
[Krishna @ newtrans-test ~] $

Tillsammans med detta var allt jag dela den raden jag behöver få kombinationen av värden
Gilla
-> RAM: US007: B00089110: systendate: fileheader
Slutsats
varhelst jag finna
Personlig Unit \u003d US007 (lim Division), Plant \u003d B00089, Departmant \u003d D110
immediatly nästa rad måste
Personlig Unit \u003d US007 (lim Division), Plant \u003d B00089, Departmant \u003d D110
Personlig Unit \u003d US007 (lim Division)
Plant \u003d B00089
Departmant \u003d D110

-> RAM: US007: B00089110: systendate: fileheader

och viktigt är skriptet ska röra endast den linje som har kombinationen av personlig Unit, Plant, Institutionen i en enda rad
Om du kan göra detta för mig tack själv en lott

Senast redigerad av krishna.fuji; 10-03-2008 at 02:29..
  #6 (permalänk)  
Old 10-03-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Ort: 45.48-73.63
Inlägg: 1.421
Citat:
Ursprungligen postat av krishna.fuji View Post
och viktigt är skriptet ska röra endast den linje som har kombinationen av personlig Unit, Plant, Institutionen i en enda rad
Glöm fancy färger och använda kod taggar när du postnummer eller uppgifter.
Kod:
awk -F, '{if(/Personal Unit/&&/Plant/&&/Departmant/){printf "# %s\n%s\n%s\n%s\n",$0,$1,$2,$3}else{print}}' file
  #7 (permalänk)  
Old 10-02-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Ort: 45.48-73.63
Inlägg: 1.421
Annan awk lösning.
Kod:
awk -F'[(|,|)]' '/^Personal/{printf "%s\n%s\n%s\n",$1,$4,$5}' file
Closed Thread

Komihåglista

Taggar
Linux-kommandon

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 12:56.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0