lördag 24 januari 2009

Bashrc Alias och Funktioner

Här kommer jag att skriva in funktioner och alias som man kan ha användning av.

Koden sparas i filen ~/.bashrc och används genom att först starta om Terminalen.

ALIAS
Detta alias gör att man slår samman två pdf filer till en med namnet output.pdf
alias pdfmerge='gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=./output.pdf'

FUNKTIONER
Denna funktion utnytjar google define. Det är samma som att skriva define: sökord i google.
Används genom att skriva define ord ex. define lamer i terminalen

Define a word

define ()
{
lynx -dump "http://google.com/search?q=define%3A+${1}" | awk '
/Definitions of/,/^$/ # tar allt fram till en tom rad, nytt stycke.
#/Referenser/,0 # tar allt från det angivna och resten av sidan. (har kommenterat bort referenserna)
' | grep -v [[] | less #Tar bort en hel del länkar och visar det som är kvar med less.

}

Kolla efter nytt inlägg på blocket
#
kollar om nåt nytt har kommit in på blocket under datorer. Använd genom att bara skriva blocket. Används genom att skriva blocket i terminalen,
blocket()
{
lynx -dump "http://www.blocket.se/li?ca=2_s&f=p&th=1&wid=1&q=&cg=5020&w=2&c=0" | iconv -f iso-8859-1 -t utf-8 | grep -v "thumb" | grep -A 3 "Idag\|Igår" | head -n 15 | cat > blocket.txt # Tar blocket, fixar till åäö, tar bort bilder, söker reda på idag/igår, ser till att det inte blir mer än 15 rader, skriver ut de raderna till filen blocket.se

touch oldblocket.txt #om inte oldblocket är skapad så skapas den nu, i annat fall uppdateras bara tidsstämpeln.

diffblocket="$(diff /home/jonas/blocket.txt /home/jonas/oldblocket.txt)" #Kollar om det har blivit nåt nytt sen senaste gången man körde funktionen.

if [ "$diffblocket" ]; then # om det har kommit nåt nytt så skrivs de 15 första raderna ut i terminalen
cat /home/jonas/blocket.txt | grep -A 3 "Idag\|Igår" # grep här är bara till för att sätta lite färg på utskriften och är i annat fall onödig...

else
echo "Inget nytt =("
fi

cp blocket.txt oldblocket.txt

}

Hitta text i fil
# Den här söker rätt på text inuti filer. Användning: findtxt n "filtyp_eller_namndel" "text du söker efter" n är optional och anger hur djupt ner i kattalogträdet du vill söka. ex. findtxt "*.txt" "Hej Jonas" alt. findtxt 5 "*.txt" "Hej Jonas"

findtxt ()

{
if [ -z "$1" ] ; then # Kollar om det helt och hållet saknas argument

echo "Tips: findtxt \"*.txt\" \"sökord\" Alt. findtxt n \"*.txt\" \"sökord\" n är hur djupt ner i katalogträdet man vill söka (optional)"

elif [ -z "$2" ] ; then # Kollar om det andra argumentet har angivits.

echo "Du måste också ange vilken text du söker efter tex. \"Hej Jonas\""

elif [ -z "$3" ] ; then # Kollar om det tredje argumentet har angivits annars körs det utan nåt maxdepth har sats på sökningen.

find . -iname "${1}" -exec grep -Hi "${2}" {} +;

else # Minst tre argument har angivits, utgår från att det är: maxdepth, filen och sökordet. Om det skulle vara fler eller felaktiga argument så tar grund kommandot find eller grep hand om det, hoppas jag :P

find . -maxdepth "${1}" -iname "${2}" -exec grep -Hi "${3}" {} +;
fi

}

Inga kommentarer: