tagger tag puddletag para mp3tag mac kid3 for easytag linux bash unix token cut

linux - para - puddletag



Corte de Unix excepto los dos Ășltimos tokens. (4)

Con corte:

$ echo t1_t2_t3_tn1_tn2.sh | rev | cut -d_ -f3- | rev t1_t2_t3

rev revierte cada línea. El 3- en -f3- significa desde el tercer campo hasta el final de la línea (que es el comienzo de la línea hasta el tercer campo hasta el final en el texto sin retroceder).

Estoy tratando de analizar los nombres de archivos en un directorio específico. Los nombres de los archivos son de formato:

token1_token2_token3_token(N-1)_token(N).sh

Necesito cortar los tokens usando el delimitador ''_'' , y necesito tomar una cuerda excepto los dos últimos tokens. En la salida anterior, examlpe debería ser token1_token2_token3 .

El número de fichas no es fijo. Intenté hacerlo con la opción -f#- del comando de cut , pero no encontré ninguna solución. ¿Algunas ideas?


No se puede hacer con cut , ¿Cómo puede usar sed o awk

sed -r ''s/(_[^_]+){2}$//g''


Puede utilizar la sustitución de parámetros definidos por POSIX:

$ name="t1_t2_t3_tn1_tn2.sh" $ name=${name%_*_*} $ echo $name t1_t2_t3


Una forma diferente de escribir la respuesta de ysth.

echo "t1_t2_t3_tn1_tn2.sh" | rev | corte -d "_" -f1,2 --complemento | Rdo