The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
A loop segítségével megtalálják a fájlnév szóközöket mronsman A UNIX a dummies Kérdések és válaszok 3 09-12-2008 09:23 AM
Változó probléma a hurok, ha a nyilatkozat ejdv Shell programozás és Scripting 6 06-17-2008 09:52 AM
A loop nyilatkozata - fogás hiba lumdev Shell programozás és Scripting 4 09-20-2007 08:50 AM
ha a nyilatkozatot, míg a hurok Bobo A UNIX a dummies Kérdések és válaszok 2 11-07-2006 12:38 PM
ha a nyilatkozatot a hurok a string Sniper Pixie A UNIX a dummies Kérdések és válaszok 7 03-02-2006 07:28 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 07-03-2009
cbo0485 cbo0485 is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Hozzászólások: 87
A loop talál nyilatkozat fájlnévvel manipuláció


Kód:
for i in `find . -name "*.BEFORE_DISASTER_RECOVERY"`;do dir_name=`dirname $i`;file_name=`basename $i`;cd $dir_name;mv $file_name (STUCK HERE) ;pwd;cd $BASE_DIR;done

Oké, szóval tudtam, hogy erre a pontra. Amint látható, van egy kis hurok, hogy keresi a fájlokat a karakterlánc BEFORE_DISASTER_RECOVERY a fájl nevét, aztán meg két változó dir_name és FILE_NAME, CD dir_name a könyvtárba, majd ha ez Beragadtam. Meg kell mv $ FILE_NAME a $ filename mínusz ". BEFORE_DISASTER_RECOVERY.

Biztos vagyok benne, hogy ez valami egyszerű, de ez van, ha én vagyok jelenleg beragadt.
  #2 (permalink)  
Old 07-03-2009
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderátor (az oktató)
  
 

Join Date: Jun 2008
Helyszín: India
Hozzászólások: 1.418
Mit jelent $ filename "mínusz"?
ez mv test.txt test-.txt?
  #3 (permalink)  
Old 07-03-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programozó, szerző
  
 

Join Date: Mar 2007
Helyszín: Toronto, Kanada
Hozzászólások: 2.372
Idézet:
Originally Posted by cbo0485 View Post

(Hibakód újraformázza a olvashatósággal)
Idézet:

Kód:
for i in `find . -name "*.BEFORE_DISASTER_RECOVERY"`

Ez sikertelen lesz, ha olyan fájlneveket tartalmaznak szóközöket. Pipe végeredményét talál a hurok:


Kód:
find . -name "*.BEFORE_DISASTER_RECOVERY" |
while read file
do
  : do whatever
done

(És szkriptjeid lesz olvasható, ha értelmes változó nevet a hurok.)
Idézet:

Kód:
do
  dir_name=`dirname $i`
  file_name=`basename $i`

Nincs szükség sem a külső parancs, vagy basename dirname. A Unix shell tudja csinálni belsőleg:


Kód:
dir_name=${file%/*}
file_name=${file##*/}

Idézet:
Kód:
  cd $dir_name
  mv $file_name # (STUCK HERE)

A cd és mv sikertelen lesz, ha $ dir_name tartalmaz szóközt. Idézet variable references:


Kód:
  cd "$dir_name"
  mv "$file_name"

Idézet:
Kód:
  pwd
  cd $BASE_DIR
done

Oké, szóval tudtam, hogy erre a pontra. Amint látható, van egy kis hurok, hogy keresi a fájlokat a karakterlánc BEFORE_DISASTER_RECOVERY a fájl nevét, aztán meg két változó dir_name és FILE_NAME, CD dir_name a könyvtárba, majd ha ez Beragadtam. Meg kell mv $ FILE_NAME a $ filename mínusz ". BEFORE_DISASTER_RECOVERY.

Biztos vagyok benne, hogy ez valami egyszerű, de ez van, ha én vagyok jelenleg beragadt.

Minden van szüksége:


Kód:
find . -name "*.BEFORE_DISASTER_RECOVERY" |
while read file
do
  mv "$file" "$file%.BEFORE_DISASTER_RECOVERY}"
done

  #4 (permalink)  
Old 07-03-2009
cbo0485 cbo0485 is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Hozzászólások: 87
Idézet:
Originally Posted by cfajohnson View Post

(Hibakód újraformázza a olvashatósággal)

Ez sikertelen lesz, ha olyan fájlneveket tartalmaznak szóközöket. Pipe végeredményét talál a hurok:


Kód:
find . -name "*.BEFORE_DISASTER_RECOVERY" |
while read file
do
  : do whatever
done

(És szkriptjeid lesz olvasható, ha értelmes változó nevet a hurok.)

Nincs szükség sem a külső parancs, vagy basename dirname. A Unix shell tudja csinálni belsőleg:


Kód:
dir_name=${file%/*}
file_name=${file##*/}


A cd és mv sikertelen lesz, ha $ dir_name tartalmaz szóközt. Idézet variable references:


Kód:
  cd "$dir_name"
  mv "$file_name"


Minden van szüksége:


Kód:
find . -name "*.BEFORE_DISASTER_RECOVERY" |
while read file
do
  mv "$file" "$file%.BEFORE_DISASTER_RECOVERY}"
done

Én pontosan tudtam, új volt linux script, de nem realizált volt olyan rossz, lol.

Egyébként, azt hiszem, félreértették vagy egy typo, nem akarok hozzátenni, hogy az én kép, szeretném eltávolítani.

Van kép nevét:

startServerABC.BEFORE_DISASTER_RECOVERY
vagy
startServer.sh.BEFORE_DISASTER_RECOVERY

El kell törölni a. BEFORE_DISASTER_RECOVERY a fájl nevét, a balra

startServerABC vagy startServer.sh
  #5 (permalink)  
Old 07-03-2009
vidyadhar85's Avatar
vidyadhar85 vidyadhar85 is offline Forum Staff  
Moderátor (az oktató)
  
 

Join Date: Jun 2008
Helyszín: India
Hozzászólások: 1.418
majd a basename csak

Kód:
basename "$filename" .BEFORE_DISASTER_RECOVERY
home> basename startServer.sh.BEFORE_DISASTER_RECOVERY .BEFORE_DISASTER_RECOVERY
startServer.sh
home>  basename startServerABC.BEFORE_DISASTER_RECOVERY .BEFORE_DISASTER_RECOVERY
startServerABC

Azt hiszem, megvan a pont ...
  #6 (permalink)  
Old 07-06-2009
cbo0485 cbo0485 is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Hozzászólások: 87
Idézet:
Originally Posted by vidyadhar85 View Post
majd a basename csak

Kód:
basename "$filename" .BEFORE_DISASTER_RECOVERY
home> basename startServer.sh.BEFORE_DISASTER_RECOVERY .BEFORE_DISASTER_RECOVERY
startServer.sh
home>  basename startServerABC.BEFORE_DISASTER_RECOVERY .BEFORE_DISASTER_RECOVERY
startServerABC

Azt hiszem, megvan a pont ...
Ez tökéletesen működik benne én hurok.

Köszönöm

Kód:
for i in `find . -name "*.BEFORE_DISASTER_RECOVERY"`;do dir_name=`dirname $i`;file_name=`basename $i`;cd $dir_name;cp $file_name `basename $file_name .BEFORE_DISASTER_RECOVERY`;pwd;cd $BASE_DIR;done

Reply

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 06:55 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0