Saya memiliki string dalam bentuk wva/sia/e1
, bct/e2
, sv/de/e11
. Selalu <Part1>/e<NUM>
atau <Part1>/<Part2>/e<NUM>
. Apa yang saya inginkan adalah untuk mempersingkat string dengan menjaga huruf pertama dari bagian dan membuang garis miring dan e:
wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11
Bagaimana saya bisa melakukannya di dalam skrip sh?
Sunting:String mewakili nama pekerjaan:
[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]
Jawaban yang Diterima:
Dalam bentuk skrip seperti yang Anda minta:
#!/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:])
Perhatikan bahwa ini berfungsi untuk semua panjang, mis.:
wva/sia/bct/wva/sia/e1
akan menjadi
wsbws1
selama bagian terakhir diakhiri dengan /e<num>
Untuk menggunakan
- Salin skrip ke dalam file kosong, simpan sebagai
rearrange.py
-
Jalankan dengan string sebagai argumen, mis.:
python3 /path/to/rearrange.py wva/sia/e1 > ws1
Penjelasan
Skripnya cukup menjelaskan dirinya sendiri, tetapi juga dikomentari.