Bir dizin unix kabuk programlamada döngü


-1

Dizindeki dosya isimleri arasında dolaşmak için bir for döngüsü kullanın. Bu sürümde, yalnızca ".old" uzantısı olmayan dosya adları arasında döngü

Döngünün içinde dosyayı yeni adla yeniden adlandırın.


5
Ödev ödevi gibi çok fazla şey okur.
garyjohn

Yanıtlar:


0

Bash 4+ 'e erişimi varsayalım (check-in bash --version) bu iki astar ile yapılabilir:

shopt -s extglob
for f in !(*.old); do mv -- "$f" new_"$f"; done

-1

Arasında olanı değiştirmeniz gerekir dove donebu nasıl kullanabileceğinize bir örnektir$f

#!/bin/sh

cd /data
list=`ls -rt`

for f in $list
do
    c=`grep -c or=90 $f`
    if [ "$c" -gt "0" ]; then    
        echo "file is $f and it has $c"
    fi
done

cd -

forVarsayılan olarak boşluklara bölündüğü için boşluklu tüm dosya isimleri kırılır ; ve yeni satırları böldüğü için yeni satırları içeren dosya adları için ls.
evilsoup

-1

Bu bir ev ödevi sorusu olmadığı için ve bunu yapmanın en iyi yolunu bilmek istediğiniz için, işte bunu bulmak için yapmanın bir yolu:

find /startfolder -not -name '*.old' -exec mv {} newname_{} \;

Bu, 'old' sonekine sahip olmayan tüm dosyaları alır ve onları newname_ öneki ile yeniden adlandırır.

Döngü için gerekli değil.


-1
for filename in $(ls $1)
do
        echo $filename | grep "\.old$" > /dev/null
                if [ $? != 0 ]
                then
                        mv $1/$filename $1/$filename.old
                fi
done
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.