The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
erstatte charandevu Shell Programmering og Scripting 6 04-07-2008 11:30 AM
Hvordan du udskifter i Vi ravi.sadani19 Shell Programmering og Scripting 5 06-25-2007 09:30 AM
Sæt \ n med \ r \ n Chanakya.m Shell Programmering og Scripting 3 07-19-2006 07:20 AM
Hvordan du udskifter bruger SED? Mahatma Shell Programmering og Scripting 4 03-23-2006 03:04 PM
Erstat jda2001 UNIX for dummyer Spørgsmål & svar 2 09-06-2005 02:20 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 01-15-2008
naikaa naikaa is offline
Registreret Bruger
  
 

Join Date: Jan 2008
Stillinger: 2
erstatte sidste / af |

Hi:

Jeg vil gerne skrive en Kshell script, der skal erstatte sidste / af |.

f.eks: / home / apps / test / dokument bør erstattes som / home / apps / test | dokument.

Længden af strengen ikke er konstant.

Tak,
Aske
  #2 (permalink)  
Old 01-15-2008
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Indlæg: 2.533
Code:
# echo "/home/apps/test/document" | sed 's/^\(.*\)\/\(.*\)/\1\|\2/'
/home/apps/test|document

Sidst redigeret af ghostdog74; 01-15-2008 på 05:38 AM..
  #3 (permalink)  
Old 01-15-2008
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrator
  
 

Join Date: Mar 2005
Beliggenhed: Irland
Posts: 4.211
Code:
sed 's_/\([^/]+\)$_|\1_'
  #4 (permalink)  
Old 01-15-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Apr 2007
Beliggenhed: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 711
Hej.
Citat:
Oprindeligt Indsendt af reborg View Post
Code:
sed 's_/\([^/]+\)$_|\1_'
Jeg havde brug for at bruge "*" i stedet for "+". Nogle versioner af sed kan få brug for "-r" for at bruge udvidede regulære udtryk, hvori parens også nødt til at modificerede:
Code:
#!/bin/sh -

# @(#) user2    Demonstrate replacement of last specific character, sed.

sed --version | head -1

echo
echo " Original:"
echo "/home/apps/test/document" |
sed 's_/\([^/]+\)$_|\1_'

echo
echo " Modified:"
echo "/home/apps/test/document" |
sed 's_/\([^/]*\)$_|\1_'

echo
echo " Original with -r:"
echo "/home/apps/test/document" |
sed -r -e 's_/([^/]+)$_|\1_'

exit 0
Producerer:
Code:
% ./user2
GNU sed version 4.1.2

 Original:
/home/apps/test/document

 Modified:
/home/apps/test|document

 Original with -r:
/home/apps/test|document
Der er (for) mange versioner af sed, Så man skal vide, hvilken version man bruger. For eksempel, hvis du var til at forlade "\ (", "\)" i 3. eksempel, ville du få en fejlmeddelelse, "ugyldig reference \ 1", ikke meget informativt, i det mindste ikke direkte ... cheers, DRL
  #5 (permalink)  
Old 01-15-2008
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrator
  
 

Join Date: Mar 2005
Beliggenhed: Irland
Posts: 4.211
Faktisk, hvad jeg bestemt til at indlæg er blevet det, men blev distraheret af en awk script:

Code:
sed 's_/\([^/][^/]*\)$_|\1_'
Hvis du betyde noget efterfulgt af mindst et andet tegn, skal være eksplicit.
  #6 (permalink)  
Old 01-15-2008
V3l0 V3l0 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Location: Belgien & Frankrig
Stillinger: 70
Code:
cr=$(echo /tutu/tatat/titi/tutu | awk -F/ '{ print $NF; }')
echo /tutu/tatat/titi/tutu | sed -e 's/\/'$cr'$/|'$cr'/'
/tutu/tatat/titi|tutu
  #7 (permalink)  
Old 01-17-2008
naikaa naikaa is offline
Registreret Bruger
  
 

Join Date: Jan 2008
Stillinger: 2
Hi guyz:

Tak for din hjælp. Esp Reborg, jeg brugte dit forslag, og det fungerer udmærket.

Tak!
Closed Thread

Bogmærker

Tags
regex, regulære udtryk

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:06 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0