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
mget * (obtein fájlokat az aktuális könyvtárban, de nem az a kép formájában alkönyvtárra) Peter321 Shell programozás és Scripting 0 03-12-2009 11:59 AM
Összevetéshez db övezetben fájl 2 directories richsark Shell programozás és Scripting 2 03-05-2009 11:05 AM
hány könyvtárak és fájlok vannak a könyvtárban smongam Shell programozás és Scripting 4 01-22-2009 02:47 PM
Fájlok két directories ravi214u Shell programozás és Scripting 2 07-14-2008 08:04 AM
Hogyan lehet összehasonlítani a két sík kép és kap megváltozott adatok jtshashidhar Shell programozás és Scripting 3 01-29-2006 10:26 PM

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 Értékelés: Thread Rating: 2 votes, 4.50 average. Megjelenítési módok
  #1 (permalink)  
Old 05-26-2009
bkeep bkeep is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Helyszín: Freeport, IL
Hozzászólások: 9
Fájlok két kimenet, valamint a megváltozott fájlokat harmadik könyvtár

Kerestem kb 30 szál, a terhelés a Google oldalain és nem találja, amit én keresek. Van néhány alkatrészt, de nem az egész. Nem tudom látszik-hoz kap a puzzle illeszkednek egymáshoz.

Nekem van három mappa, melyek közül kettő tartalmaz különböző változatait több fájlt, dist/file1.php dist/file2.php stb és dist_old/file1.php dist_old/file2.php stb

A harmadik mappa csak a megváltoztatott fájlokat, a kettő között. Ha a / dist/file1.php eltér / dist_old/file1.php majd dist_upgrade/file1.php nevű fájl már létezik ugyanolyan tartalmú, mint dist/file1.php.

Jelenleg én vagyok kézzel birkóznak a különböző fájlokat WinMerge és szeretném automatizálni néhány ilyen, ha lehetséges.

Amit én szeretnék csinálni van összehasonlítani a dist mappában a dist_old mappát, akkor már a fájlokat, amelyek nem ugyanazt a másolt dist_upgrade / fájl.kit megtartva a könyvtár teljes tartalma, szerkezete és az új fájlt a dist mappában.

Thanks for any advice,
Üdvözlettel,
Brandon
  #2 (permalink)  
Old 05-26-2009
edgarvm edgarvm is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Hozzászólások: 26
Ez akkor lehet hasznos
Kód:
#!/bin/sh
cd dist
for a in `ls`; do
   
   if [ ! -f "../dist_old/$a" ]; then
       continue
   fi
   diff $a ../dist_old/$a > /dev/null
   if [[ "$?" == "1" ]]; then
      cp $a ../dist_upgrade
   fi
done

Last edited by edgarvm; 05-26-2009 at 07:35 PM..
  #3 (permalink)  
Old 05-26-2009
JerryHone JerryHone is offline
Regisztrált felhasználó
  
 

Join Date: Nov 2006
Location: UK
Posts: 178
Hasonló a edgarvm 'de birkóznak meg az új fájlokat, valamint a különböző egyek ...

Kód:
new=/dist
old=/dist_old
diff=/dist_upgrade

cd $new
for f in *f
do
# Diff the files - ignore the output...
    diff $f $old > /dev/null 2>&1
# ...but get the status
    status=$?
    if [ $status -eq 0 ] ; then
# Files are identical - don't copy the file
        echo $f unchanged
    elif [ $status -eq 1 ] ; then
# Files differ - copy new file
        echo $f changed
        cp $f $diff
    elif [ $status -eq 2 ] ; then
# Old file doesn't exist - copy new file
        echo old $f does not exist
        cp $f $diff
    fi
done
You'll valójában kap állapotú 2, ha a fájl létezik, de olvashatatlan is, de azt már figyelmen kívül hagyni, hogy amint tudja, hogy mindent olvasható megkezdése előtt!
  #4 (permalink)  
Old 05-26-2009
bkeep bkeep is offline
Regisztrált felhasználó
  
 

Join Date: May 2009
Helyszín: Freeport, IL
Hozzászólások: 9
Kösz a válaszokat srácok is remek. Van egy pár módosítást kap ez működő rekurzívan használva edgarvm példáját. Én is beépítették JerryHone ötlete az újságírókkal való nem létező fájlok

Kód:
#!/bin/bash

# setup folders for our different stages
DIST=/var/www/localhost/htdocs/dist/
DIST_OLD=/var/www/localhost/htdocs/dist_old/
DIST_UPGRADE=/var/www/localhost/htdocs/dist_upgrade/

cd $DIST

list=`find . -type f`

for a in $list; do
   if [ ! -f "$DIST_OLD$a" ]; then
        cp --parents $a $DIST_UPGRADE
      continue
   fi
   diff $a $DIST_OLD$a > /dev/null
   if [[ "$?" == "1" ]]; then
        # File exists but is different so copy changed file
        cp --parents $a $DIST_UPGRADE
   fi
done
Köszönöm a tanácsot.
Üdvözlettel,
Brandon

Last edited by bkeep; 05-26-2009 at 10:04 PM.. Reason: Megvan dolgozik fenti kód
  #5 (permalink)  
Old 08-26-2009
realaaa realaaa is offline
Regisztrált felhasználó
  
 

Join Date: Aug 2009
Hozzászólások: 1
köszönet srácok, ez a szkript segített nekem nagyon!

de ma rájöttem, hogy nem tudja feldolgozni szóközöket fájlnevek helyesen így módosítottam egy kicsit felhasználásával tanácsot most:

Unixjunkie Blog: Kezelés fájlnevek szóközökkel


Úgy tűnik, ez a szkript ilyen fájlok feldolgozására nem megfelelő (bár én nem teszt nem túl nagy):

Kód:
#!/bin/bash

# setup folders for our different stages
DIST=/var/www/localhost/htdocs/dist/
DIST_OLD=/var/www/localhost/htdocs/dist_old/
DIST_UPGRADE=/var/www/localhost/htdocs/dist_upgrade/

cd $DIST

find . -type f | while read filename
do
   if [ ! -f "$DIST_OLD$filename" ]; then
        cp --parents "$filename" $DIST_UPGRADE
      continue
   fi
   diff "$filename" "$DIST_OLD$filename" > /dev/null
   if [[ "$?" == "1" ]]; then
        # File exists but is different so copy changed file
        cp --parents $filename $DIST_UPGRADE
   fi
done
egészségére!
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 10:44 PM.


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