alles außer letzte 4 strings

ergy1983

Grünschnabel
Beiträge
6
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
 

Nexus633

Eroberer
Beiträge
57
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
 

Nexus633

Eroberer
Beiträge
57
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 :-).
 

Programmer78

Doppel-As
Beiträge
146
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
 

Nexus633

Eroberer
Beiträge
57
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

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

Shell Skript beschleunigen

Summe von Zahlen in einer Zeilen bilden

Oben