video=./video music=./music docs=./doc archive=./archive scripts=./scripts match() { file=$(echo $fn | awk -F/ '{print $NF}') for i in `ls $1` do if [ "$i" != "$file" ] then continue else #echo "Файл существует" continue 2 fi done } mkdirs() { if [ -d $1 ] then echo else mkdir $1 fi } extn() { extn=$(echo $fn | awk -F/ '{print $NF}'| sed 's/[^.]*\.//') echo $1/$extn } find . -name '*' | grep -v $0 | while read fn do case $fn in *avi|*mkv|*flv|*vob|*mpg ) mkdirs $video match $video mv $fn $video ;; *mp3|*ogg ) mkdirs $music match $music mv $fn $music ;; *doc|*odt|*ods|*html|*htm|*chm|*djvu|*pdf ) mkdirs $(extn $docs) match $docs mv $fn $(extn $docs) ;; *zip|*rar|*tar|*bz2|*gz|*tgz|*deb|*7z ) mkdirs $(extn $archive) match $archive mv $fn $(extn $archive) ;; *pl|*py|*sh ) mkdirs $(extn $scripts) match $scripts mv $fn $(extn $scripts) ;; * ) #echo "Ohh!" esac done
video=./video music=./music docs=./docs archive=./archive scripts=./scripts match() { file=$(echo $fn | awk -F/ '{print $4}') for i in `ls $1` do if [ "$i" != "$file" ] then continue else #echo "Файл существует" continue 2 fi done } mkdirs() { if [ -d $1 ] then sleep 0 else mkdir $1 fi } extn() { extn=$(echo $fn | awk -F/ '{print $NF}'| sed -e 's/.*\.//;q') echo $1/$extn } dirsp() { dirs=( video scripts music archive ) find . -type d -empty | grep -v ${dirs[@]} } #find -type d - find . -name '*' | grep -v $0 | while read fn do case $fn in *avi|*mkv|*flv|*vob|*mpg ) mkdirs $video match $video mv $fn $video ;; *mp3|*ogg ) mkdirs $music match $music mv $fn $music ;; *doc|*odt|*ods|*html|*htm|*chm|*djvu|*pdf ) mkdirs $docs mkdirs $(extn $docs) match $(extn $docs) mv "$fn" $(extn $docs) ;; *zip|*rar|*tar|*bz2|*gz|*tgz|*deb|*7z ) mkdirs $archive mkdirs $(extn $archive) match $(extn $archive) mv "$fn" $(extn $archive) ;; *pl|*py|*sh ) mkdirs $(extn $scripts) match $scripts mv $fn $(extn $scripts) ;; * ) #echo "Ohh!" esac done
Сообщение от Hip-Hop:
Сортировка файлов на bash?
export IFS=$'\x0A' video=./video music=./music docs=./docs archive=./archive scripts=./scripts match() { file=$(echo $fn | awk -F/ '{print $4}') for i in `ls $1` do if [ "$i" != "$file" ] then continue else #echo "Файл существует" continue 2 fi done } mkdirs() { if [ -d $1 ] then sleep 0 else mkdir $1 fi } extn() { extn=$(echo $fn | awk -F/ '{print $NF}'| sed -e 's/.*\.//;q') echo $1/$extn } dirsp() { find . -type d -empty -exec rm -r '{}' \; } find . -name '*' | grep -v $0 | while read fn do case $fn in *avi|*mkv|*flv|*vob|*mpg ) mkdirs $video match $video mv $fn $video ;; *mp3|*ogg ) mkdirs $music match $music mv $fn $music ;; *doc|*odt|*ods|*html|*htm|*chm|*djvu|*pdf ) mkdirs $docs mkdirs $(extn $docs) match $(extn $docs) mv $fn $(extn $docs) &>> /dev/null dirsp ;; *zip|*rar|*tar|*bz2|*gz|*tgz|*deb|*7z ) mkdirs $archive mkdirs $(extn $archive) match $(extn $archive) mv $fn $(extn $archive) &>> /dev/null ;; *pl|*py|*sh ) mkdirs $scripts mkdirs $(extn $scripts) match $scripts mv $fn $(extn $scripts) ;; * ) #echo "Ohh!" esac done
export IFS=$'\x0A' #echo "<$IFS>" | od -bc video=./video music=./music docs=./docs archive=./archive scripts=./scripts mkdirs() { if [ -d $1 ] then sleep 0 else mkdir $1 fi } extn() { extn=$(echo $fn | awk -F/ '{print $NF}'| sed -e 's/.*\.//;q') echo $1/$extn } dirsp() { find . -depth -type d -empty -exec rm -r '{}' \; } if [ -z $1 ] then echo "ohh!" elif [ "$1" == "-d" ] then dirsp fi find . \( -path $video -o -path $music -o -path $archive -o -path $docs -o -path $scripts \) -prune -o -name '*' | grep -v $0 | while read fn do case $fn in *avi|*mkv|*flv|*vob|*mpg ) mkdirs $video mv $fn $video ;; *mp3|*ogg ) mkdirs $music mv $fn $music ;; *doc|*odt|*ods|*html|*htm|*chm|*djvu|*pdf ) mkdirs $docs mkdirs $(extn $docs) mv $fn $(extn $docs) ;; *zip|*rar|*tar|*bz2|*gz|*tgz|*deb|*7z ) mkdirs $archive mkdirs $(extn $archive) mv $fn $(extn $archive) ;; *pl|*py|*sh ) mkdirs $scripts mkdirs $(extn $scripts) mv $fn $(extn $scripts) ;; * ) #echo "Ohh!" esac done
Archive: OpenSource012.zip Length Date Time Name --------- ---------- ----- ---- 1493151 2006-10-03 12:09 OpenSource012_20061003.pdf 3260 2006-10-03 22:55 OpenSource012-listings.txt --------- ------- 1496411 2 files
root@debian-1:~/testdir/scripts/sh# tar -tf vnstat_php_frontend-1.5.0.tar.gz vnstat_php_frontend-1.5.0/ vnstat_php_frontend-1.5.0/VeraBd.ttf vnstat_php_frontend-1.5.0/README vnstat_php_frontend-1.5.0/COPYING vnstat_php_frontend-1.5.0/themes/ vnstat_php_frontend-1.5.0/themes/light/ vnstat_php_frontend-1.5.0/themes/light/theme.php vnstat_php_frontend-1.5.0/themes/light/style.css vnstat_php_frontend-1.5.0/themes/red/ vnstat_php_frontend-1.5.0/themes/red/theme.php vnstat_php_frontend-1.5.0/themes/red/style.css vnstat_php_frontend-1.5.0/themes/dark/ vnstat_php_frontend-1.5.0/themes/dark/theme.php vnstat_php_frontend-1.5.0/themes/dark/style.css vnstat_php_frontend-1.5.0/themes/espresso/ vnstat_php_frontend-1.5.0/themes/espresso/theme.php vnstat_php_frontend-1.5.0/themes/espresso/style.css ....
a=`unzip -l $1 | wc -l` # все строки c=`unzip -z $1 | wc -l`# комменты? let "c=c+2" # const? let "a=a-1" # const? b=`unzip -l $1 | awk '(NR > c ) && (NR < a) {print $4}' a=$a c=$c`# все кроме шапки и двух последних строк. echo "$b"
export IFS=$'\x0A' #echo "<$IFS>" | od -bc video=./video music=./music docs=./docs archive=./archive scripts=./scripts mkdirs() { if [ -d $1 ] then sleep 0 else mkdir $1 fi } extn() { extn=$(echo $fn | awk -F/ '{print $NF}'| sed -e 's/.*\.//;q') echo $1/$extn } dirsp() { find . -depth -type d -empty -exec rm -r '{}' \; } if [ -z $1 ] then echo "ohh!" elif [ "$1" == "-d" ] then dirsp fi find . \( -path $video -o -path $music -o -path $archive -o -path $docs -o -path $scripts \) -prune -o -name '*' | grep -v $0 | grep -v rar_zip2tar.sh | while read fn do case $fn in *avi|*mkv|*flv|*vob|*mpg ) mkdirs $video mv $fn $video ;; *mp3|*ogg ) mkdirs $music mv $fn $music ;; *doc|*odt|*ods|*html|*htm|*chm|*djvu|*pdf ) mkdirs $docs mkdirs $(extn $docs) mv $fn $(extn $docs) ;; *zip|*rar|*tar|*bz2|*gz|*tgz|*deb|*7z ) mkdirs $archive mkdirs $(extn $archive) mv $fn $(extn $archive) a=`extn` if [[ a == rar||zip ]] then . rar_zip2tar.sh # просто как пример. :) fi ;; *pl|*py|*sh ) mkdirs $scripts mkdirs $(extn $scripts) mv $fn $(extn $scripts) ;; * ) #echo "Ohh!" esac done
export IFS=$'\x0A' #echo "<$IFS>" | od -bc #shopt -s extglob && rm -rf !(*tar) ?? #rm -r `ls -1 | grep -v *sh | grep -v *rar` #root_id=0 #if [ $UID -eq $root_id ] #then #echo; echo -e "НЕ запускайте от root этот скрипт!"; echo #exit 0 #fi mount |grep mnt; echo $? if [ $? -ne 0 ] then mount -t tmpfs /dev/shm /mnt/ fi mkdirs() { if [ -d $1 ] then sleep 0 else mkdir $1 fi } 0x5F() { ls -1 | awk '{ newfn = $0; if(gsub(" ", "_", newfn)>0) { system("mv \"" $0 "\" " newfn) } }' } file() { file=`echo $fn | echo $1 | awk -F/ '{print $NF}' | sed 's/.rar//g'` } extn() { extn=$(echo $fn | awk -F/ '{print $NF}'| sed -e 's/.*\.//;q') echo $extn } rar=/mnt/rar cok=/mnt/cok tar=/mnt/tar mkdirs $rar mkdirs $tar mkdirs $cok cp -R /root/testdir/archive/rar/* $rar cp -R /root/testsir/archive/zip/* $rar cd $rar && 0x5F $rar find $rar -type f -name '*' | while read fn do a=`extn` if [ $a == "rar" ] then unrar x -inul $fn $cok cd $cok && 0x5F $cok/* file "$fn" cd $cok && tar -caf $file.tar.gz . mv $file.tar.gz $tar rm -rf $cok/* elif [ $a == "zip" ] then unzip $fn -d $cok cd $cok && $0x5F $cok/* file "$fn" cd $cok && tar -caf $file.tar.gz . mv $file.tar.gz $tar rm -rf $cok/* fi done exit 0
Сообщение от dm.tsvetkov:
"зачем?"
Сообщение от Hip-Hop:
Я адепт http://ru.wikipedia.org/wiki/Рыбалка_со_спутника
Сообщение от mishel13:
с какого спутника ловишь?
Сообщение от dm.tsvetkov:
но, ведь не удобнее же. какой смысл?
Сообщение от Hip-Hop:
надо получить список содер архива в переменную. Как это сделать в powershell?
$list = 7z l archiv.zip $z = for ($i=13; $i -le $list.Length - 3; $i++) { [System.IO.Path]::GetFileName($list[$i]) }
Сообщение от Hip-Hop:
powershell не ровня командным интерпретаторам unix.
Сообщение от Hip-Hop:
Должен же быть какой-то интерес?
Сообщение от dm.tsvetkov:
к сожалению, не могу найти картинку.
на ней изображена стена. на стене розетка. к розетке подключена электроплитка. на электроплитке стоит кипящий чайник. из носика бьет струя пара, которая вращает вентилятор.
вентилятор привод в движение ротор генератора. к клемамам генратора подключена лампочка.
она светится!!!
Сообщение от Hip-Hop:
си шарп использовать нельзя.
Сообщение от :
7z l archiv.zip
Сообщение от X0R:
{ [System.IO.Path]::GetFileName($list[$i]) }
Сообщение от Hip-Hop:
А это тоже powershell?
Сообщение от :
Windows PowerShell построен на базе Microsoft .NET Framework и интегрирован с ним. Дополнительно PowerShell предоставляет удобный доступ к COM, WMI и ADSI, равно как и позволяет выполнять обычные команды командной строки, чтобы создать единое окружение, в котором администраторы смогли бы выполнять различные задачи на локальных и удалённых системах.
`7z l -slt archive.zip`.lines.map{|line| line.start_with?('Path') ? line.split('=')[1].strip : nil}.compact
Сообщение от :
$sAppProgID = “Word.Application”;
$tWordObj = [System.Type]::GetTypeFromProgID($sAppProgID)
$oWord = [System.Activator]::CreateInstance($tWordObj)
$oWord.Visible = $true
$oDocuments = $oWord.Documents
$docType = [Microsoft.Office.Interop.Word.WdDocumentType]::wdTypeDocument
$docFormat = [Microsoft.Office.Interop.Word.WdSaveFormat]::wdFormatDocument97
...
Сообщение от Hip-Hop:
Нет, я не понял. Вы о чем-то другом. Можно сортировать и торренты. Моя идея проста. Во-первых, хорошо опер...