The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
grep en utilisant le format de la date ali560045 De programmation et de script Shell 4 12-26-2007 08:59 AM
grep en utilisant le format de la date ali560045 De programmation et de script Shell 8 12-11-2007 06:39 PM
comment préparer un i c + + code (code c) pour la mise en œuvre du protocole de mon propre format amitpansuria High Level Programming 1 09-07-2007 12:09 AM
comment formater une commande grep jasongr De programmation et de script Shell 2 11-18-2005 02:07 PM
Comment formater nombre / string en ksh GNMIKE De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 10-01-2008
krishna.fuji krishna.fuji is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 5
Thumbs up Grep, puis préparer ensuite le format d'une chaîne

Salut

J'ai un fichier qui est d'avoir la ligne comme ci-dessous

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

Lorsque jamais i fine ligne de départ Sith personnels Unité ministère et contient des plantes dont j'ai besoin pour prendre cette ligne et la forme comme

Personal Unit \u003d AU003
Plant \u003d B00089
Departmant \u003d D110
-> RAM: AU003: B00089110: la date système: en-tête du fichier

i utilisé sed

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

Mais ce n'est pas mon fullfilling tous besoin
s'il vous plaît ne peut proposer un
  #2 (permalink)  
Old 10-02-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4309
Avec awk, vous pouvez faire quelque chose comme:
Code:
awk -F, '/^Personal Unit=/&&/Plant/&&/Departmant/{sub("\(.*\)","")}{print $1 OFS $2 OFS $3}' OFS="\n" file
Observe
  #3 (permalink)  
Old 10-02-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Registered User
  
 

Join Date: Apr 2007
Localisation: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Messages: 711
Salut.

J'ai dû changer, comme si le sous, de citer 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
Production:
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
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 5
ce n'est pas exactement ce que nous attendions la sortie

Citation:
Posté par DRL View Post
Salut.

J'ai dû changer, comme si le sous, de citer 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
Production:
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


Salut, j'ai plusieurs lignes dans ce script. Dès qu'il amende la peine tout de suite il a tenu à revenir sur le fait. plus au cours de la ligne supplémentaire ci-dessous, il n'est pas donner. Je serai très reconnaissant si le faire
  #5 (permalink)  
Old 10-03-2008
krishna.fuji krishna.fuji is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 5
Citation:
Posté par krishna.fuji View Post
Salut, j'ai plusieurs lignes dans ce script. Dès qu'il amende la peine tout de suite il a tenu à revenir sur le fait. plus au cours de la ligne supplémentaire ci-dessous, il n'est pas donner. Je serai très reconnaissant si le faire

[krishna @ newtrans-test ~] $ cat RAM1
Personal Unit \u003d US003 (Industrial Products Division), Plant \u003d B00089, Departmant \u003d D110
Il s'agit de ma propre
Personal Unit \u003d US003 (Industrial / Products Division), Plant \u003d B00089, Departmant \u003d D110
Nous avons besoin de makfmkldfd
Personal Unit \u003d US004 (Consumer Products Division) Plante \u003d B00089, Departmant \u003d D1119
mdkmvckldmldm
Ceci est pour une certaine idée quand junk de données dans le fichier
Personal Unit \u003d US004 (Consumer Products Division), la plante: B00078, Departmant \u003d D111
Personal Unit \u003d US006 (Mfg Machinery Division), Plant \u003d B00089, Departmant \u003d D1188
Personal Unit \u003d US007 (Adhesives 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
Il s'agit de ma propre
# 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
Nous avons besoin de makfmkldfd
# Personal Unité \u003d US004 (Consumer Products Division) Plante \u003d B00089, Departmant \u003d D1119
Personal Unit \u003d US004 (Consumer Products Division) Plante \u003d B00089
Departmant \u003d D1119
mdkmvckldmldm
Ceci est pour une certaine idée quand junk de données dans le fichier
# Personal Unité \u003d US004 (Consumer Products Division), la plante: B00078, Departmant \u003d D111
Personal Unit \u003d US004 (Consumer Products Division)
Plant \u003d B00078
Departmant \u003d D111
# Personal Unité \u003d US006 (Mfg Machinery Division), Plant \u003d B00089, Departmant \u003d D1188
Personal Unit \u003d US006 (Mfg Machinery Division)
Plant \u003d B00089
Departmant \u003d D1188
# Personal Unité \u003d US007 (Adhesives 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 ~] $

Parallèlement à ce où que je partage la ligne que j'ai besoin d'obtenir la combinaison de valeurs
Comme
-> RAM: US007: B00089110: systendate: fileheader
Conclusion est
où i trouver
Personal Unit \u003d US007 (Adhesives Division), Plant \u003d B00089, Departmant \u003d D110
immédiatement la ligne suivante doit être
Personal Unit \u003d US007 (Adhesives Division), Plant \u003d B00089, Departmant \u003d D110
Personal Unit \u003d US007 (Adhesives Division)
Plant \u003d B00089
Departmant \u003d D110

-> RAM: US007: B00089110: systendate: fileheader

et est l'importance de ce script doit toucher uniquement la ligne qui ont la combinaison de l'unité personnelle, des plantes, Ministère dans une seule ligne
SI vous pouvez faire cela pour moi un grand merci

Dernière édition par krishna.fuji; au 10.03.2008 03:29 AM..
  #6 (permalink)  
Old 10-03-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Lieu: 45.48-73.63
Posts: 1428
Citation:
Posté par krishna.fuji View Post
et est l'importance de ce script doit toucher uniquement la ligne qui ont la combinaison de l'unité personnelle, des plantes, Ministère dans une seule ligne
Oubliez les coloris, et de l'utilisation des balises du code lorsque vous affichez le code ou de données.
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
Lieu: 45.48-73.63
Posts: 1428
Une autre solution awk.
Code:
awk -F'[(|,|)]' '/^Personal/{printf "%s\n%s\n%s\n",$1,$4,$5}' file
Closed Thread

Bookmarks

Tags
linux commandes

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 10:55 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0