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
Escape-Zeichen in tcsh balareddy Shell Programmierung und Scripting 1 08-15-2008 06:58 AM
Escape-Zeichen deepakpv Shell Programmierung und Scripting 4 02-16-2007 03:19 AM
awk / Escape-Zeichen OFFSIHR Shell Programmierung und Scripting 8 11-29-2006 01:28 PM
Escape-Zeichen in vi? stevefox Shell Programmierung und Scripting 4 11-17-2005 03:38 PM
möglich, aus dem \ Zeichen in sed? gammaman UNIX for Dummies Questions & Answers 1 07-07-2005 03:49 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-07-2008
c00kie88 c00kie88 is offline
Registrierte Nutzer
  
 

Join Date: Apr 2008
Beiträge: 63
Angry Escape-Zeichen - sed

Hi All,

Wie schreibe ich in sed für den 6. und 7. Bereich der etc / passwd-Datei, da sie die Zeichen "/"?

Ist mir unten ist richtig? Es ist unvollständig Skript als ich brauche Hilfe bei der Syntax, wie ich immer immer Mai Fehler

Beispiel für etc / passwd-Datei:

bla: x: 1055:600: bla bla: / home / bla: / bin / ksh

sed "s / \ ($ name:.: [0-9] *: \) [0-9] *: \ (.* \): \ (\ / .* \ / .* \): \ (\ / .* \ / .* \)

Zuletzt bearbeitet von c00kie88; am 10-07-2008 09:17 AM..
  #2 (permalink)  
Old 10-07-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Der Separator nach n kann jedes beliebige Zeichen. Also, ich würde empfehlen die Verwendung von Hochkommata um das Skript, es sei denn, Sie müssen speziell Anführungszeichen (in diesem Fall die Backslashes müssen verdoppelt werden).


Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\) ...'

Beachten Sie, dass die Mischung aus Einzel-und doppelte Anführungszeichen oben.
  #3 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registrierte Nutzer
  
 

Join Date: Apr 2008
Beiträge: 63
Ich habe versucht, aber es sagt "SED: Verzerrter Befehl:
  #4 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registrierte Nutzer
  
 

Join Date: Apr 2008
Beiträge: 63
es sieht so aus, als:

sed "s / \ ($ name:.: [0-9] *: \) [0-9] *: \ (.* \): \ (/.*/.* \): \ (/.*/ .* \) / \ 1 $ Antwort \ 2 / "/ etc / passwd

Ich habe versucht die einzigen Angebots als Zeit vorgeschlagen, aber SED ist nicht zufrieden
  #5 (permalink)  
Old 10-08-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Wiederholen Sie: Sie müssen die Backslashes verdoppeln, wenn Sie Anführungszeichen. Dies ist ein Artefakt des Shell Quoting-Mechanismen, die nicht der sed Syntax als solche. Wenn Sie den Schrägstrich als Trennzeichen, Sie müssen jeden Backslash Schrägstriche, die nicht Separatoren, aber es ist besser, einfach mit einem anderen Trennzeichen.


Code:
sed "s%\\($name:.:[0-9]*:\\)[0-9]*:\\(.*\\):\\(/.*/.*\\):\\(/.*/.*\\)%\1$answer\2%" /etc/passwd

Mit einfachen Anführungszeichen, dass sich


Code:
sed 's%\('"$name"':.:[0-9]*:\)[0-9]*:\(.*\):\(/.*/.*\):\(/.*/.*\)%\1'"$answer"'\2%' /etc/passwd

Die Variablen $ name oder $ Antwort Natürlich kann nicht die Trennzeichen in ihren Werten (oder müssen Sie die Escape-Werte).

Zuletzt bearbeitet von ERA; 10-08-2008 auf 03:15 AM.. Grund: Need Variablen zu entkommen, wenn sie das Trennzeichen
  #6 (permalink)  
Old 10-08-2008
c00kie88 c00kie88 is offline
Registrierte Nutzer
  
 

Join Date: Apr 2008
Beiträge: 63
Ok ..

Ich zitiere einzigen ..

sed 's / \ ( "$ name "':.:[ 0-9] *: \) [0-9] *: \ (.* \): \ (/.*/.* \): \ ( /.*/.* \) "/ etc / passwd

aber immer noch nicht gut ..

Was habe ich falsch gemacht?
  #7 (permalink)  
Old 10-08-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Sie sind nicht kopieren + Einfügen richtig, und sich nicht zurück, was die Fehlermeldung ist. "Still no good" ist nicht eine nützliche Diagnostik. Aber, wenn Sie sorgfältig mit der Maus kopieren + fügen die Befehle oben, und sorgfältig Kopie + paste Fehler wieder hier, wir können um Ihnen zu helfen.

"Unbekannte Option s" bedeutet, dass Sie etwas nach (was sed meint ist) die letzte, die Trennlinie ist keine gültige Option für s / von / bis / GP (hier "g" und "P" sind die Optionen). In diesem Fall ist es einfach, weil Sie noch mit Schrägstrich als Trennzeichen, ohne die Flucht Schrägstriche, die nicht Separatoren. Ändern Sie die Trennlinie%, oder aus der Schrägstriche werden.

Auch Ihr Befehl ist teilweise, Sie fehlen die "auf" Teil \ 1 $ Antwort \ 2
Closed Thread

Lesezeichen

Tags
Quoting, sed Syntax

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 03:38 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