GNU/Linux >> Belajar Linux >  >> Ubuntu

Memisahkan String, Mengekstrak Karakter, dan Menyatukan Kembali?

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

  1. Salin skrip ke dalam file kosong, simpan sebagai rearrange.py
  2. Jalankan dengan string sebagai argumen, mis.:

    python3 /path/to/rearrange.py wva/sia/e1
    
    > ws1
    

Penjelasan

Skripnya cukup menjelaskan dirinya sendiri, tetapi juga dikomentari.


Ubuntu
  1. Tambahkan Dan Tambahkan String Ke Setiap Elemen $* Di Shell?

  2. Ubuntu – Bagaimana Mengonfigurasi Izin Untuk Mengizinkan Gedit, Apache, Dan Ide Bermain Bersama?

  3. Bagaimana Cara Keluar Dan Masuk Kembali Ke Pusat Perangkat Lunak Ubuntu?

  1. Bawa Backspace Kembali Ke Nautilus (3.18+) Sekali Dan Untuk Semua!?

  2. Cara mencadangkan dan memulihkan instalasi WordPress di Plesk

  3. Gunakan Holland dan Cloud Backup untuk mencadangkan database MySQL

  1. Skrip Ekstraksi Sendiri:Tar -xo Dan Dd?

  2. Kembalikan Pintasan Keyboard `backspace` Di Nautilus Dan Thunar?

  3. Bagaimana cara membalikkan-i-mencari bolak-balik?