staging.inyokaproject.org

Letztes Zeichen löschen

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

stylesuxx

Avatar von stylesuxx

Anmeldungsdatum:
29. November 2005

Beiträge: 2997

Hello!
Ich steh wiedermal auf der Leitung.

undzwar möchte ich Dateien sortieren, als beispiel:
Im Ordner Test sind folgende files
kurz_60_min
mittel_100_min
lang_120_min

so nun soll der erste teil des namens vor dem ersten _ jeweils mit | getrennt in eine Variable gespeichert werden.
Folgendes hab ich bis jetzt:

ls Test | cut-d _ -f1 | tr '\n' '|'


dann bekomme ich folgende Ausgabe:

kurz|mittel|lang|

Sehr schön, bis auf das letzte |.
Wie bekomme ich das jetzt weg, ich bin am probieren und suchen, bin aber auf keinen grünen Zweig gekommen.

Hat jemand einen heißen Tipp für mich?

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

Mit der Bash ginge das z.B. so:

marc@s8n:~/tmp/kml$ ls
kurz_60_min  lang_120_min  mittel_100_min
marc@s8n:~/tmp/kml$ A=$(ls | cut -d '_' -f 1 | tr '\n' '|')
marc@s8n:~/tmp/kml$ A=${A:0:${#A} - 1}
marc@s8n:~/tmp/kml$ echo $A
kurz|lang|mittel

Alternativ mit sed das letzte '|' entfernen:

marc@s8n:~/tmp/kml$ ls | cut -d '_' -f 1 | tr '\n' '|' | sed 's/|$//'

stylesuxx

(Themenstarter)
Avatar von stylesuxx

Anmeldungsdatum:
29. November 2005

Beiträge: 2997

Oh mein Gott sed, bin so doof *grml*

Danke Dir wieder einmal 😀

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Alternativ auch mit Python:

[lunar@nargond]-[21:12:21] >> /home/lunar
[2]--> names = ['kurz_60_min', 'mittel_100_min', 'lang_120_min']

[lunar@nargond]-[21:13:02] >> /home/lunar
[3]--> print '|'.join([f.split('_')[0] for f in names])
kurz|mittel|lang

Ach, ipython ist doch was tolles 😉

Gruß
lunar

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

Wie wäre es gleich mit sed und tr:

 ls *min | sed 's/_.*//g'| tr '\n' '|'

?

Antworten |