Ich habe Strings in Form von wva/sia/e1
, bct/e2
, sv/de/e11
. Es ist immer <Part1>/e<NUM>
oder <Part1>/<Part2>/e<NUM>
. Was ich möchte, ist, die Saiten zu verkürzen, indem ich die Anfangsbuchstaben der Teile behalte und die Schrägstriche und e:
wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11
Wie kann ich das in einem sh-Skript machen?
Bearbeiten:Die Zeichenfolge stellt einen Jobnamen dar:
[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]
Akzeptierte Antwort:
In Form eines Skripts als das, wonach Sie fragen:
#!/usr/bin/env python3
import sys
# read the input, split by /
st = sys.argv[1].split("/")
# get the first char of all sections *but* the last one
# add the last *from* the first character
print("".join([s[0] for s in st][:-1])+st[-1][1:])
Beachten Sie, dass dies für jede Länge funktioniert, z. B.:
wva/sia/bct/wva/sia/e1
wird
wsbws1
solange der letzte Abschnitt mit /e<num>
endet
Zu verwenden
- Kopieren Sie das Skript in eine leere Datei und speichern Sie es als
rearrange.py
-
Führen Sie es mit dem String als Argument aus, z. B.:
python3 /path/to/rearrange.py wva/sia/e1 > ws1
Erklärung
Das Script erklärt sich ziemlich von selbst, ist aber auch kommentiert.