The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
grep mit Datumsformat ali560045 Shell Programmierung und Scripting 4 12-26-2007 08:59 AM
grep mit Datumsformat ali560045 Shell Programmierung und Scripting 8 12-11-2007 06:39 PM
wie ich eine C + +-Code (C-Code) für die Umsetzung meiner eigenen Protokoll-Format amitpansuria High-Level-Programmierung 1 09-07-2007 12:09 AM
wie formatieren Befehl grep jasongr Shell Programmierung und Scripting 2 11-18-2005 02:07 PM
Wie Format Zahl / String in ksh GNMIKE Shell Programmierung und Scripting 2 07-03-2005 04:44 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 10-01-2008
krishna.fuji krishna.fuji is offline
Registrierte Nutzer
  
 

Join Date: Oct 2008
Beiträge: 5
Thumbs up Grep, und formatieren Sie dann einen String

Hi

Ich habe eine Datei, die mit Zeile wie unten

Persönliche Unit \u003d AU003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110

Wann immer ich feine Zeile Sith Persönliche Einheit und enthält Plant Abteilung Ich brauche, um diese Zeile und formatieren Sie sie wie

Persönliche Unit \u003d AU003
Plant \u003d B00089
Departmant \u003d D110
-> RAM: AU003: B00089110: System Datum: Header der Datei

Ich habe sed

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

Aber es ist nicht meine Erfüllung aller Notwendigkeit
kann einer bitte vorschlagen
  #2 (permalink)  
Old 10-02-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4342
Mit awk kann man so etwas wie:

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

Grüße
  #3 (permalink)  
Old 10-02-2008
drl's Avatar
DRL drl is online now Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Beiträge: 717
Hi.

Ich hatte eine Änderung der Unter-wie so, von Zitat zu Slash:

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

Herstellung:

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

cheers, DRL
  #4 (permalink)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registrierte Nutzer
  
 

Join Date: Oct 2008
Beiträge: 5
Es ist nicht die genaue Ausgang, was wir erwartet

Zitat:
Zitat von DRL View Post
Hi.

Ich hatte eine Änderung der Unter-wie so, von Zitat zu Slash:

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

Herstellung:

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

cheers, DRL


Hi ich habe mehrere Zeilen in diesem Skript. Sobald er die Geldbuße Satz hat er sofort wieder aus der gegebenen gesetzt. mehr über den unten genannten zusätzlichen Linie ist es nicht geben. Ich werde sehr dankbar, wenn Sie dazu
  #5 (permalink)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registrierte Nutzer
  
 

Join Date: Oct 2008
Beiträge: 5
Zitat:
Zitat von krishna.fuji View Post
Hi ich habe mehrere Zeilen in diesem Skript. Sobald er die Geldbuße Satz hat er sofort wieder aus der gegebenen gesetzt. mehr über den unten genannten zusätzlichen Linie ist es nicht geben. Ich werde sehr dankbar, wenn Sie dazu

[Krishna @ newtrans-Test ~] $ cat ram1
Persönliche Unit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Dies ist meine eigene
Persönliche Unit \u003d US003 (Industrie / Products Division), Plant \u003d B00089, Departmant \u003d D110
Wir müssen makfmkldfd
Persönliche Unit \u003d US004 (Consumer Products Div) Pflanze \u003d B00089, Departmant \u003d D1119
mdkmvckldmldm
Dies ist für eine Vorstellung, wenn der Junk-Daten in der Datei
Persönliche Unit \u003d US004 (Consumer Products Div), Plant \u003d B00078, Departmant \u003d D111
Persönliche Unit \u003d US006 (Machinery Mfg Division), Plant \u003d B00089, Departmant \u003d D1188
Persönliche Unit \u003d US007 (Adhesives Division), Plant \u003d B00089, Departmant \u003d D110
Persönliche Unit \u003d US009 (Adhesives Division)
Persönliche Unit \u003d US010 (Adhesives Division)

[Krishna @ newtrans-Test ~] $ sed -e '/ Referat Personal / (h, s /^/#/ p; x;)'-e '/ Referat Personal / (s / Plant / \ nPlant / g'-e 's /, Departmant / \ nDepartmant / g ') ram1
# Persönliche Einheit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Persönliche Unit \u003d US003 (Industrial Products Division)
Plant \u003d B00089
Departmant \u003d D110
Dies ist meine eigene
# Persönliche Einheit \u003d US003 (Industrie / Products Division), Plant \u003d B00089, Departmant \u003d D110
Persönliche Unit \u003d US003 (Industrie / Products Division)
Plant \u003d B00089
Departmant \u003d D110
Wir müssen makfmkldfd
# Persönliche Einheit \u003d US004 (Consumer Products Div) Pflanze \u003d B00089, Departmant \u003d D1119
Persönliche Unit \u003d US004 (Consumer Products Div) Pflanze \u003d B00089
Departmant \u003d D1119
mdkmvckldmldm
Dies ist für eine Vorstellung, wenn der Junk-Daten in der Datei
# Persönliche Einheit \u003d US004 (Consumer Products Div), Plant \u003d B00078, Departmant \u003d D111
Persönliche Unit \u003d US004 (Consumer Products Div)
Plant \u003d B00078
Departmant \u003d D111
# Persönliche Einheit \u003d US006 (Machinery Mfg Division), Plant \u003d B00089, Departmant \u003d D1188
Persönliche Unit \u003d US006 (Machinery Mfg Division)
Plant \u003d B00089
Departmant \u003d D1188
# Persönliche Einheit \u003d US007 (Adhesives Division), Plant \u003d B00089, Departmant \u003d D110
Persönliche Unit \u003d US007 (Adhesives Division)
Plant \u003d B00089
Departmant \u003d D110
# Persönliche Einheit \u003d US009 (Adhesives Division)
Persönliche Unit \u003d US009 (Adhesives Division)
# Persönliche Einheit \u003d US010 (Adhesives Division)
Persönliche Unit \u003d US010 (Adhesives Division)
[Krishna @ newtrans-Test ~] $

Zusammen mit diesen, wo immer ich bin, dass die Aufteilung der Zeile brauche ich, um die Kombination von Werten
Wie
-> RAM: US007: B00089110: systendate: fileheader
Fazit ist
wo finde ich
Persönliche Unit \u003d US007 (Adhesives Division), Plant \u003d B00089, Departmant \u003d D110
sofort nächste Zeile zu
Persönliche Unit \u003d US007 (Adhesives Division), Plant \u003d B00089, Departmant \u003d D110
Persönliche Unit \u003d US007 (Adhesives Division)
Plant \u003d B00089
Departmant \u003d D110

-> RAM: US007: B00089110: systendate: fileheader

und wichtig ist dieses Skript sollte nur die Note, die sich mit der Kombination Persönliche Einheit, Werk, Abteilung in einer einzelnen Zeile
Wenn Sie dies für mich Vielen Dank

Zuletzt bearbeitet von krishna.fuji; am 10-03-2008 03:29 AM..
  #6 (permalink)  
Old 10-03-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Lage: 45.48-73.63
Beiträge: 1.440
Zitat:
Zitat von krishna.fuji View Post
und wichtig ist dieses Skript sollte nur die Note, die sich mit der Kombination Persönliche Einheit, Werk, Abteilung in einer einzelnen Zeile
Vergessen Sie Lust auf Farben, und die Verwendung Code-Tags Wenn Sie Code oder Daten.

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  
  
 

Join Date: Nov 2007
Lage: 45.48-73.63
Beiträge: 1.440
Eine andere Lösung awk.

Code:
awk -F'[(|,|)]' '/^Personal/{printf "%s\n%s\n%s\n",$1,$4,$5}' file

Closed Thread

Lesezeichen

Tags
Linux-Befehle

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 10:35 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0