Removendo parte de um monte de nomes de diretório usando um curinga

0

Estou tentando usar o unix para remover a última parte dos nomes de uma série de diretórios. Aqui está um exemplo da estrutura de nomes:

s23987_11.09.16_hf_0001
s29485_03.04.07_hs_0005
s39854_01.01.01_an_0011

Estou tentando remover tudo após o primeiro _ de forma que os nomes dos diretórios sejam:

s23987
s29485
s39854
    
por emc62 16.11.2017 / 19:24

1 resposta

1

Com shells POSIX:

for d in *_*; do mv -- "$d" "${d%%_*}"; done

A %% sintaxe diz "associe o máximo que puder de: um sublinhado ( _ ) seguido por qualquer coisa ( * ) do final do valor da variável".

    
por 16.11.2017 / 19:26