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".
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
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".