Mám řetězce ve tvaru wva/sia/e1
, bct/e2
, sv/de/e11
. Vždy je to
nebo <Část1>/<Část2>/e
wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11
Jak to mohu udělat uvnitř skriptu sh?
Upravit:Řetězec představuje název úlohy:
[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]
Přijatá odpověď:
Ve formě skriptu jako to, o co žádáte:
#!/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:])
Všimněte si, že to funguje pro jakoukoli délku, např.:
wva/sia/bct/wva/sia/e1
se stane
wsbws1
pokud poslední sekce končí /e
K použití
- Zkopírujte skript do prázdného souboru a uložte jej jako
rearrange.py
-
Spusťte jej s řetězcem jako argumentem, např.:
python3 /path/to/rearrange.py wva/sia/e1 > ws1
Vysvětlení
Scénář v podstatě vysvětluje sám sebe, ale je také komentován.