Bash scripting tips

Lubisz robić proste skrypty w Bashu, a czasem stajesz przed czymś nie do przeskoczenia w prosty sposób? Poniżej kilka przypadków z życia PHPowca, który musiał zrobić coś w Bashu 🙂

 

Usunięcie kolorów i innych atrybutów znaków:

echo $string | "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"

 

Usunięcie spacji i tabulatorów sprzed i zza stringa [odpowiednik PHP: trim($string)]

echo $string | sed 's/^[ \t]*//;s/[ \t]*$//'

 

Zmiana windowsowego znaku końca linii (widziane pod Linuxem jako ^M) na UNIXowy jednoznakowy. A ściślej to ta funkcja jedynie usuwa same znaki ^M nie patrząc czy występuje drugi znak.

echo $string | sed 's/\r//g'

 

Pomięcie w grepie pustych linii

echo $string | grep .

 

Konwersja kolorowego tekstu z konsoli na HTML:

apt-get install aha echo $string | aha --no-header

 

grep i dwa warunki (OR) bez rozróżniania wielkości znaków

echo $string | grep -i "kowalski\|kwiatkowski"

 

grep i dwa warunki (AND) bez rozróżniania wielkości znaków i bez znaczenia kolejności występowania słów kluczowych

echo $string | grep -i "kowalski" | grep -i "kwiatkowski"

 

Sprytny sposób na pokazanie wszystkich dostępnych kolorów wraz z ich kodami

for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""

 

Weryfikacja długości łańcucha

x="kozax";
  if [ ${#x} == 5 ]; then
  echo "jest OK";
fi
Reklamy