GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Dividir cadenas, extraer caracteres y volver a armar?

Tengo cadenas en forma de wva/sia/e1 , bct/e2 , sv/de/e11 . Siempre es <Part1>/e<NUM> o <Part1>/<Part2>/e<NUM> . Lo que quiero es acortar las cadenas manteniendo las primeras letras de las partes y eliminando las barras y e:

wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11

¿Cómo puedo hacer eso dentro de un script sh?

Editar:la cadena representa un nombre de trabajo:

[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]

Respuesta aceptada:

En forma de script como lo que pides:

#!/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:])

Tenga en cuenta que esto funciona para cualquier longitud, por ejemplo:

wva/sia/bct/wva/sia/e1

se convertirá

wsbws1

siempre que la última sección termine con /e<num>

Para usar

  1. Copie el script en un archivo vacío, guárdelo como rearrange.py
  2. Ejecútelo con la cadena como argumento, por ejemplo:

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

Explicación

El guión prácticamente se explica solo, pero también se comenta.


Ubuntu
  1. Ubuntu:¿cómo configurar los permisos para permitir que Gedit, Apache y un Ide jueguen juntos?

  2. ¿Traer de vuelta los atajos de teclado `backspace` en Nautilus y Thunar?

  3. ¿¡Regresar el retroceso a Nautilus (3.18+) de una vez por todas!?

  4. Cómo hacer copias de seguridad y restaurar instalaciones de WordPress en Plesk

  5. Utilice Holland y Cloud Backup para realizar copias de seguridad de bases de datos MySQL

Cómo realizar copias de seguridad y restaurar sitios en Plesk

Cómo hacer copias de seguridad y restaurar bases de datos en Plesk

Cómo usar el comando SED para buscar y reemplazar cadenas en archivos

Cómo convertir PDF a imágenes PNG y viceversa en Linux

¿Construir un comando poniendo una cadena en un Tty?

Cómo usar Sed para buscar y reemplazar una cadena en un archivo