Liste zeilenweise auslesen und best. Teile umwandeln ...

M

MaeK

Grünschnabel
Hallo,

ich habe eine Liste die in etwas so ausschaut:

lxbh1at9_ERL_20
aif2us7_WQA_02
.
...

Im ersten Schritt muss ich den ersten Teil herausziehen lxbh1at9 den dieser stellt den Servernamen dar.
Im zweiten Schritt muss ich diesen Teil ERL in Kleinbuchstaben umwandeln und noch 3 Buchstaben anhängen, denn daraus bildet sich der Login.

Dann würde es bei der nächsten Zeile so weitergehen ...

Könnt ihr mir bei der Umsetzung dieses Scripts helfen? Danke. :)
 
Alles klar.

Eine Frage habe ich noch.

Ich möchte mich mittels Script, per SSH anmelden und gleichzeitig eine Befehl mitgeben.
Wie geht das ?

Den wenn die SSH Anmeldung durch ist führt er das Script nicht weiter aus ...
 
Zuletzt bearbeitet:
Den wenn die SSH Anmeldung durch ist führt er das Script nicht weiter aus ...

Lego, weil das Script so lange wartet, bis der ssh-Befehl fertig ist, bevor es weiter macht.

Und dann würde der nächste Befehl lokal ausgeführt, so gehts also sicher nicht.
 
Aus purer Langeweile... zum erweitern:

~/bin/serveranalysis
Code:
#! /bin/bash                             

SERVER_TMP_FILE="/tmp/server_file"
SNAMES_TMP_FILE="/tmp/server_names.tmp"
SUSERS_TMP_FILE_UPPER="/tmp/server_usernames_upper.tmp"
SUSERS_TMP_FILE_LOWER="/tmp/server_usernames_lower.tmp"
SREST_TMP_FILE="/tmp/server_rest.tmp"                  

# Filter for valid lines
grep "_" $1 > $SERVER_TMP_FILE

function toLower {
  echo $1 | tr "[:upper:]" "[:lower:]" 
}                                      

function clearTmp {
  rm $SERVER_TMP_FILE
  rm $SNAMES_TMP_FILE
  rm $SUSERS_TMP_FILE_UPPER
  rm $SUSERS_TMP_FILE_LOWER
  rm $SREST_TMP_FILE       
}                          

# Servernames:
cut  -d "_" -f 1 $SERVER_TMP_FILE > $SNAMES_TMP_FILE

# Usernames:
cut -d "_" -f 2 $SERVER_TMP_FILE > $SUSERS_TMP_FILE_UPPER
for i in $(cat $SUSERS_TMP_FILE_UPPER)
do
  toLower $i >> $SUSERS_TMP_FILE_LOWER
done

# Rest
cut -d "_" -f 3 $SERVER_TMP_FILE > $SREST_TMP_FILE

# Paramters
case "$2" in
  s)
        cat $SNAMES_TMP_FILE
        ;;
  u)
        cat $SUSERS_TMP_FILE_LOWER
        ;;
  r)
        cat $SREST_TMP_FILE
        ;;
  c)
        clearTmp
        ;;
  a)
        cat $SNAMES_TMP_FILE
        cat $SUSERS_TMP_FILE_LOWER
        cat $SNAMES_TMP_FILE
        ;;
  *)
        echo Usage: $0 [INPUT_FILE] [surca]
        ;;
esac

clearTmp
 
Zurück
Oben