Полезни Bash скриптове за Уеб Разработчици

Публикувано в Bash скриптове на 17.01.2010

Ето, че сме на Bash вълна. Днес попаднах на една много интересна статия и ще се опитам да споделя някои полезни неща от нея.

Ето това са няколко много интересни Bash скрипта които могат да повишат вашата производителност като уеб разработчици. Искренно се надявам, че някои от тях ще ви бъдат доста интересни.

1. Добавяне на файлово разширение към множество файлове

Да се представим, че идва клиент който казва искам да ми поддържате сайта и аз ще ви плащам за това. Вие си казвате СУПЕР :), ще имам по още 300 лева на месец за Бентлито :)), но влизате в сървъра и какво да видите всички класове, функции и пр. са със разширение *.inc. Понеже вие знаете, че това е адски несигурно и абсурдно искате да добавите на всички тези 765 файла разширение .php тоест крайния ни резултат е *.inc.php

Ето как можем да го направим много лесно.

for i in *.inc; do mv "$i" "$i.php"; done

2. Полезен скрипт който прави всички файлове с малки букви

Ето това просто скриптче прави всички файлове в определена директория със малки букви.

for i in *.txt; do mv "$i" "`echo $i| tr [A-Z] [a-z]`"; done

3. Лесно търсене на стринг във файл

Малко пред-история за това какво се случва в следващите редове.

-o печата само мачнатите части от мачнатия ред, като мачната част я печата на отделен ред.

-H петачата името на файла за всеки мачнат резултат.

-R, -r  рекурсивно чете всички файлове по субдиректориите.

grep -oHnr "nqkakuv pattern"  *.txt

{txt,log} така можем да търсим във всички файлове които са *.txt или *.log. 2>/dev/null така изпращаме всички грешки на дъното на вселената или така наречения Black Hole и така грешките няма да бъдат показани.

grep 123741 ./direktoriq_s_logove/*.{txt,log} 2>/dev/null

Намира всички случаи в които има 123741 във всички .txt и .log файлове във всички субдиректории.

for i in 'find . -type d'; do grep 123741 $i/*.{txt,log}; done 2>/dev/null

4. Лесно инкрементиране на променлива в Bash скрипт

i=0; i=$(($i+1))

Ето един примерен цикъл

j=0;for i in *.txt; do echo "nqkakuv_file_"$j".txt"; j=$(($j+1)); done

5. Лесно подреждане на файлове по директории

Ето как лесно можем да подреждаме файлове в директории по съответни критерии. Да кажем, че искаме всички файлове, които съдържат думата apple да се съхраняват в специално създадена директория за това:

for i in *apple*.jpg; do mv $i ${img/apples/} ; done

6. Лесен начин да сваляме файлове от уеб сайтове посредством cURL

curl -O http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.33-rc4.tar.bz2

Надявам се да съм бил полезен с тези няколко реда.

Продължение …

Етикети: , , , , , , , ,


4 коментара по “Полезни Bash скриптове за Уеб Разработчици”

  1. Todor Georgiev казва:

    Още два които са любопитни:

    find php errors:
    find . -type f -name \*.php -exec php -l {} \;

    count lines of code:
    find . -type f | egrep -iv ‘\.(gif|png|jpg|exe|dll|so|a|o|obj|tar|gz|jar|zip)$’ | xargs cat | egrep -v ‘^[^a-zA-Z0-9_/*;,.:#(){}=+-]*$’ | wc -l

  2. Marian Ignev казва:

    Мерси, ще седна да си отделя още една серия скриптчета за продължението на това постче :)

  3. жаргон казва:

    А, каква е разликата между тегленето с curl и wget?

  4. Ами господин Жаргон какво да ви кажа,
    тук е показан просто пример как става с cURL. Ако трябва да съм честен аз лично си тегля файлове под конзола с wget, само че ми е много по лесно по някога като например когато има сесии кукита и какви ли не неща да си го направя със cURL. Да кажа още веднъж с wget също става но на мен ми е по лесно с cURL :) А относно самото теглене лично аз препоръчвам wget най-малкото заради това, че има например background mode за download, cURL може би има също някакъв начин но аз не го зная :)

    Надявам се отговорът ми да ви е удовлетворил господин Жаргон :))

Вашият коментар