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
comment sh pour exécuter une commande à partir d'un script csh bonovox De programmation et de script Shell 2 06-25-2008 05:24 AM
Comment construire une commande dans une chaîne plutôt que d'exécuter la commande littlejon De programmation et de script Shell 1 05-29-2008 09:05 PM
script shell pour l'utilisateur d'exécuter la commande redtiger De programmation et de script Shell 1 04-30-2008 07:53 PM
exécuter le script ou pas exécuter Kespinoza97 De programmation et de script Shell 4 06-23-2007 10:27 AM
Plz Help: Comment utiliser la commande d'écrire la commande à exécuter sur un autre terminal Aashish UNIX pour les nuls Questions et réponses 2 03-03-2006 12:25 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 07-17-2008
gugs gugs is offline
Registered User
  
 

Date d'inscription: juillet 2008
Posts: 44
S'il vous plaît, aidez: Construction d'un sed de commande et l'exécuter dans un script

Je suis en train d'utiliser un tableau pour stocker certaines données (par exemple, les touches 47975081_1215781266128), on peut supposer qu'elle est essentielle à d'autres données.

Je veux extraire des données à partir d'un fichier sur la base d'un couple de clés (fourchette) et de stocker les données dans une variable en utilisant la commande suivante:
sed -n '/ 47975081_1215781266128 /, / 42628155_1215781428374 / p' test1.txt

Dans mon script, je construire un sed de commandement et de l'écrire sur un fichier temporaire en utilisant le code ci-dessous:
Entre1 \u003d "$ (keys [$ i])"
Range2 \u003d "$ (keys [$ i +1])"
a \u003d "sed -n '/ "
b \u003d"/,/"
c \u003d "/ p"
d \u003d "test1.txt"
echo "$ a $ entre1 $ b $ $ $ c Range2 d"> temp.txt

Cela fonctionne bien, il écrit le texte suivant à la chaîne de fichier temporaire:
sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p' test1.txt

Ensuite, je grep ce fichier et d'affecter le contenu d'une variable
sedcmd \u003d $ (grep sed temp.txt)

Toutefois, la chaîne qui est extrait a d'autres caractères ci-joint, le grep extraits:
sed -n''\''/ 08465696_1215781522540 /, / 70225547_1215781581748 / p '\''' test1.txt

Il a ajouté:''\ 'avant le' / 08465 .... et \'' 'après le .... 48 / p'
Est ce que quelqu'un peut me dire pourquoi s'il vous plaît? et comment je peux extraire ce qui est exactement dans le fichier temp.txt et exécutez-le.

Fondamentalement, je veux construire une commande, l'exécuter et d'affecter le résultat contenu dans un tableau.
  #2 (permalink)  
Old 07-17-2008
cooldude cooldude is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 44
Je ne suis pas voir cela.
Voici le contenu de temp.txt:
sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p' test1.txt

Voici mon script de test:
Code:
#!/bin/ksh

sedcmd=$(grep sed temp.txt)

echo $sedcmd
Et je obtenir le contenu du fichier dans $ sedcmd:
Code:
$./test
sed -n '/08465696_1215781522540/,/70225547_1215781581748/p' test1.txt
Etes-vous sûr que temp.txt a le droit de contenu?
  #3 (permalink)  
Old 07-18-2008
gugs gugs is offline
Registered User
  
 

Date d'inscription: juillet 2008
Posts: 44
Plus d'aide s'il vous plaît

Thanksk, il a été écrit, les guillemets dans le fichier. J'ai corriger le problème. Cependant, je suis maintenant confronté à une autre pour laquelle il mai être une simple explication. Quand je lance la commande:

cat test1.txt | $ ($ sedcmd)> temp2.txt

où sedcmd \u003d sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p'

Je ne suis pas d'obtenir une sortie dans la temp2.txt. Quand je lance le script dans le déboguer des Etats Aucun fichier ou répertoire '

Le même message est affiché dans le débogage, même lorsque je cours:
sed -n '/ 08465696_1215781522540 /, / 70225547_1215781581748 / p' test1.txt> temp2.txt


Toutes les idées pourquoi?
  #4 (permalink)  
Old 07-18-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Modérateur
  
 

Join Date: Sep 2007
Lieu: Allemagne
Messages: 2285
Il ne sera pas exécuté sans backticks ou de simples crochets. Chechk la backticks souligné ci-dessous.
Code:
sedcmd = `sed -n '/08465696_1215781522540/,/70225547_1215781581748/p'`
  #5 (permalink)  
Old 07-18-2008
gugs gugs is offline
Registered User
  
 

Date d'inscription: juillet 2008
Posts: 44
La commande à exécuter semble OK. Voir ci-dessous j'ai joint le résultat de debug:

+ Entre1 \u003d 70225547_1215781581748
+ \u003d Range2
+ A \u003d 'sed -n '
+ B \u003d /, /
+ C \u003d / p
+ Echo 'sed -n / 70225547_1215781581748 /, / / p '
+ + Grep sed temp.txt
Sedcmd + \u003d 'sed -n / 70225547_1215781581748 /, / / p '
+ Chat test1.txt
+ + sed -n / 70225547_1215781581748 /, / / p
+ '<_05_1:MessageIdentifier> ERR: 70225547_1215781581748 </ _05_1: MessageIdentifier>
'</ _05: ReceiveRequest> <? Xml' version \u003d "1.0" "encoding \u003d" UTF-8 "?> <Erreur: Excepti
sur 'xmlns: error \u003d "hhtp/messages/exception/2006-06"' 'xmlns
: xsi \u003d "http://www.w3.org/2001/XMLSchema-instance" '' SchemaVersion \u003d "1.0"> <error: Na
moi> ABC </ error: Name> <error:Code> 001 </ error: Code> <erreurETAIL> Une erreur s'est produite
tout en essayant de traiter une demande de routage, voir la liste ci-jointe exception pour «det
souffrance </ erreurETAIL> <_05_1:MessageIdentifier> ERR: 70225547_1215781581748 </ _05_1: MessageIdentifier>: Aucun fichier ou répertoire
  #6 (permalink)  
Old 07-18-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Modérateur
  
 

Join Date: Sep 2007
Lieu: Allemagne
Messages: 2285
Vous avez ce fichier d'entrée text1.txt. Exécutez le sed commande sur le réservoir sur ce 1er sans redirigeant vers un outputfile. Il suffit de le tester, puis commencer à les réorienter, si cela fonctionne.
Et, s'il vous plaît utiliser les balises [code] et [/ code] pour avoir votre code eyefriendly plus pour nous, ty
  #7 (permalink)  
Old 07-18-2008
gugs gugs is offline
Registered User
  
 

Date d'inscription: juillet 2008
Posts: 44
Le code ci-dessous fonctionne:

Entre1 \u003d "$ (keys [$ i])"
Range2 \u003d "$ (keys [$ i +1])"
a \u003d "sed -n / "
b \u003d"/,/"
c \u003d "/ p"
echo "$ a $ entre1 $ b $ Range2 $ c"> temp1.txt
sedcmd \u003d $ (grep sed temp1.txt)
errordata \u003d $ ($ sedcmd <test1.txt)
echo "$ errordata"> temp2.txt

Cependant, je suis d'avoir à l'écho le contenu de la variable dans un fichier que je processus.

Ce que je voudrais faire est d'envoyer les données de l'$ sedcmd <test1.txt à temp2.txt l'aide de: cat test1.txt | $ ($ sedcmd)> temp2.txt. Cependant, cela me donne "Aucun fichier ou répertoire" errorr
Closed Thread

Bookmarks

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 11:48 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