GNU/Linux >> Znalost Linux >  >> Ubuntu

Rozdělit řetězec, extrahovat znaky a dávat zase dohromady?

Mám řetězce ve tvaru wva/sia/e1 , bct/e2 , sv/de/e11 . Vždy je to /e nebo <Část1>/<Část2>/e . Chci zkrátit řetězce ponecháním prvních písmen částí a odstraněním lomítek a 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í

  1. Zkopírujte skript do prázdného souboru a uložte jej jako rearrange.py
  2. 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.


Ubuntu
  1. Ubuntu – Jak nakonfigurovat oprávnění, aby mohli Gedit, Apache a Ide hrát společně?

  2. Samorozbalovací skripty:Tar -xo a Dd?

  3. Jak se odhlásit a poté přihlásit zpět do softwarového centra Ubuntu?

  1. Vrátit Backspace zpět do Nautilu (3.18+) jednou provždy!?

  2. Použijte Holland a Cloud Backup k zálohování databází MySQL

  3. Použil jsem Ctrl-Alt-F6 v Linuxu a nemohu obnovit obrazovku

  1. Extrahování a zobrazení dat pomocí awk

  2. Připojit a připojit řetězec ke každému prvku $* v Shell?

  3. Jak zpětně vyhledávat tam a zpět?