Start Web Helpdesk Projekte Whiteboard

Linux . . . ShellScript  Helpdesk Inhalt-Helpdesk Unten PDF

Inhalt

1.Variablen
2.sed
2.1Zeile löschen
2.2Text ersetzen
3.tr
3.1Zeilenumbruch entfernen
3.2groß und kleinschreibung tauschen
4.awk
4.1nur string 2 anzeigen
4.29 Zeichen ab Stelle 291 lesen
4.3nächste zeile in $0 laden
5.tail
5.1letzte Zeile auswählen
6.head
6.1erste n zeilen lesen
7.sort
8.read
8.1Zeilenweise lesen
9.case
10.enscript
10.1Ascii in ps und pdf
11.cut
12.Array


Variablen

intern

echo Uebergabeparameter: $*
echo user ist: $USER
echo shell ist: $SHELL
echo Parameter 1 ist: $1
echo Prozedurname ist: $0
echo Prozessnummer ist: $$
echo Anzahl der Parameter ist: $#
a=17.89        # ohne Luecken am = Zeichen

system

echo $PPID >/daten/public/drucker.txt
echo $UID  >>/daten/public/drucker.txt
echo $HOME >>/daten/public/drucker.txt
echo $HOSTNAME >>/daten/public/drucker.txt
echo $HOSTTYPE >>/daten/public/drucker.txt
echo $MACHTYPE >>/daten/public/drucker.txt
echo $OSTYPE >>/daten/public/drucker.txt
echo $$ >>/daten/public/drucker.txt
echo $SECONDS >>/daten/public/drucker.txt

http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/internalvariables.html

http://de.selfhtml.org/servercgi/cgi/umgebungsvariablen.htm

sed

Zeile löschen

Alle Zeilen mit hallo löschen

 sed '/hallo/ d '

Text ersetzen

In allen Zeilen Hallo mit Hellau ersetzen.

 sed "s/Hallo/Hellau/g"

Punkt ist schwerer..

 s/\./ /g

Nur zeilen mit ich ändern

 sed -e '/ich/s/$1500/$3000/g'

wenn auch / weg müssen geht auch

  sed "s.Hallo.Hellau."

sed kann auch mehreres auf einmal wenns mit semikolon getrennt ist:

 sed "s/ersteswird/das/;s/andere/jenes/g"

Wems aufgefallen ist, beim ersten ist es ohne g , das steht für ALLE


tr

Zeilenumbruch entfernen

#zeilenumbruch tr -d '\r' oder tr -d '\n'

 tr -d '\r' 
 tr -d '\n'

groß und kleinschreibung tauschen

 tr A-Z a-z
 tr a-z A-Z
 tr "[:upper:]" "[:lower:]"
 tr "[A-Z]" "[a-z]"

awk

nur string 2 anzeigen

 awk '{print $2}'

9 Zeichen ab Stelle 291 lesen

 BaCo=`echo "$line" | awk '{print substr($0, 291, 9)}'` # "" wegen leerzeichen

nächste zeile in $0 laden

 awk '/eth0/{getline; print $0}'

Berechnung anhand der Länge einer Variablen

 let lange=`echo $Nummer | awk '{print length($Nummer)}'`*10+100

tail

letzte Zeile auswählen

 wer=`tail -n 1 $PC`

head

erste n zeilen lesen

 head -n 8 /daten/www/htdocs/wetter.htm

sort

Datei sortieren, Spalte 1 nehmen und doppelte entfernen

 sort -f $tmp | awk '{print $1}'| uniq   >$testsoft 

read

Zeilenweise lesen

 cat $dadei |while read line
	do
		irgendwas
	done

case

 case $Stax in
	11) Stay="OK"
	;;
	69) Stay="ZUG"
	;;
	*) Stay="NIX" # alles andere
 esac

enscript

Ascii in ps und pdf

 enscript -B testfile.txt -p- | ps2pdf - testfile.pdf
 cal 2013 | enscript | lpr -p lp98

cut

 bor=`echo $line | cut -d '|' -f 3 `
 id="$( cut -d '|' -f 2 <<< "$line" )"

Array

 $ set -A array "one two three four"
 $ echo ${array[0]}
 one two three four

so the command given in the OP results in an array with a single element. To replicate that behavior: Code:

 $ string="one two three four"
 $ set -A array "$string"
 $ echo ${array[0]}
 one two three four

but if you want to split it into separate array elements do: Code:

 $ string="one two three four"
 $ set -A array $string
 $ echo ${array[0]}
 one

if this is not working for you, you probably have IFS set wrong: Code:

 $ IFS=""
 $ string="one two three four"
 $ set -A array $string
 $ echo ${array[0]}
 one two three four


www.bittnermichael.de
Datenschutz