Archiwa tagu: bash

[bash]Rekursywna zmiana rozszerzeń plików.

Załóżmy, że mamy dużo plików o jakimś tam rozszerzeniu rozsianych w dużej ilości katalogów.
I chcemy tym wszystkim plikom zmienić rozszerzenie na jakieś inne.
np
test/bb/plik2.jpeg
test/cc/plik4.jpeg
test/cc/plik3.jpeg
test/cc/plik5.jpeg
test/aa/plik.jpeg
test/aa/dd/plik7.jpeg

chcemy te pliki. jpeg zmienić na .jpg

Rozwiązanie:
find test -name *.jpeg | awk -F '.' '{OFS=FS;var=$0;$(NF)="";print var" "$0"jpg"}' | xargs -n 2 mv

BASH: Proste, ustandaryzowane logowanie z poziomu skryptów (przy użyciu sysloga)

Do tego niebywale trudnego zadania, służy aplikacja logger.

usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]

Jak widać składnia jest bardzo trudna, także przykłady

[szydell@centos ~]$ logger "Się popsuło"
[root@centos ~]# cat /var/log/messages
...
Apr 25 09:01:42 centos szydell: Się popsuło

-f /katalog/nazwapliku.log – logowanie do konkretnego pliku (zadbaj o uprawnienia)
-t SIAKISTAG – zamiast logowania jaki user uruchomił, zaloguje taga

fedora 19: gnome brak ikonki do minimalizowania okien

Dziwne… standardowo okno można zamknąć, bądź też zmaksymalizować (dwuklik na belce tytułowej)

# yum install gnome-tweak-tool
$ gnome-tweak-tool

Opcja którą szukamy to:
Powłoka -> uporządkowanie przycisków na pasku tytułowym

Fakt, że znikanie okien też jest jakieś takie do dupy, bo nie widać ich po zniknięciu na żadnym pasku… no ale, lepsze to niż nic.

yum install gnome-shell-extension-window-list

rm z pipe’m, czyli jak posprzątać po przypadkowym wypakowaniu archiwum nie tam gdzie się chciało

Czasem w ramach roztargnienia zdarza się nam narozrabiać. Ja dzisiaj rozpakowałem sobie archiwum w miejsce, w którym mam sporo innych plików… Zrobił się konkretny bajzel, także trzeba było posprzątać.

Pierwsze co mi przyszło do głowy, to wyświetlić zawartość archiwum, użyć | rm -rf i tyle, ale okazuje się, że nie da się tak przekazać listy plików do rm i koniec. Jak zawsze z pomocą przyszedł Pan Gugiel, a właściwe rozwiązanie problemu to:

tar -tf nazwaarchiwum.tar | xargs rm -f

Proste.

bash/sed parser .ini

Potrzebowałem dzisiaj prosty parser, dla pliku konfiguracyjnego w moim skrypcie pisanym w bashu. Padło na .ini i genialne wygooglowane rozwiązanie

 

#!/bin/bash
CONFIG_FILE="config.ini"
SECTION="section_1"

eval `sed -e 's/[[:space:]]*\=[[:space:]]*/=/g' \
          -e 's/;.*$//' \ -e 's/[[:space:]]*$//' \
          -e 's/^[[:space:]]*//' \
          -e "s/^\(.*\)=\([^\"']*\)$/\1=\"\2\"/" \
          < $CONFIG_FILE \
          | sed -n -e "/^\[$SECTION\]/,/^\s*\[/{/^[^;].*\=.*/p;}"`

Co ważne autor pomysłu udostępnia go zgodnie z zasadami licencji WTFPL. 😉

Oryginał dostępny tu: http://www.tuxz.net/blog/archives/2011/10/19/parse__ini_files_with_bash_and_sed/