alles außer letzte 4 strings

E

ergy1983

Grünschnabel
Hallo,
ich habe verschieden lange Strings (Dateinamen) und möchte gerne den Dateinamen als Variable ausgeben:

1. Strings
ill_avg_win_100_1.job
ill_avg_win_m_M_2_B.job

Code:
for i in ill_avg_win_*
do
outname= "ill_avg_win_"`echo $i |awk '{print substr($1,12,7)}'`
echo $outname
done

Aber das funktioniert nicht. Outname sollte dann jeweils folgendes ausgeben:
ill_avg_win_100_1
ill_avg_win_m_M_2_B

Danke für jede Hilfe,
Ergy
 
Du kannst auch einfach nen tr setzten :-)

for i in ill_avg_win_*; do
echo $i | tr '.' ' ' | awk '{print $1}'
done

aber auch das sollte man mit ls machen :-).

Bin halt ein Typ der gerne bissi komplizierter baut aber dafür immer filtert :-)

Mit dem tr , trimmst du den Punkt zum space. Jetzt haben wir 2 strings von nun an lässt du dir nur den 1 ausgeben :-)

-
Vom Handy gesendet
 
Ach ja:
String = "das ist ein String" oder "String"
Char = 'a'

Ein String ist eine Zeichenkette :-) das was du willst ist den Dateinamen ohne typenbezeichnung :-).
 
Gibt viele Möglichkeiten, hier ein paar Beispiele. Geht bestimmt noch einfacher.

Code:
#Letzte 4 Zeichen löschen
echo $i | sed 's/....$//'

#Bis zum Punkt mit cut
echo $i | cut -d \. -f 1

#Bis zum Punkt mit awk
echo $i | awk -F . '{ print $1 }'

#Oder neue Liste anlegen
cat ill_avg_win_* | sed 's/....$//' > ill_avg_win_LIST
 
Viele Wege führen nach Rom :-) auch deine Beispiele :-). Linux bietet dir viele Werkzeuge mit denen du schnell und gute Resultate erzielen kannst. Die Kunst der bash liegt darin, diese Werkzeuge zu beherrschen und nützlich einsetzen zu können.

Nichts wissen heißt nicht gleich nichts wissen, man muss nur wissen wo man antworten auf die Fragen findet :-)...
PS: die antworten schreibe ich vom Handy... Schei..... Autokorrektur :-). Sorry für etwaige Fehler :-)
 
Zuletzt bearbeitet:

Ähnliche Themen

Switche abfragen über Script

Tabelle in Array "konvertieren"

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

Zeilen behalten, die Werte in einem bestimmten Bereich enthalten

Grafische Anzeige der Temperatur

Zurück
Oben