msoliver
(usa Debian)
Enviado em 06/07/2019 - 18:38h
mayna escreveu:
Olá a todos.
Preciso de um comando que delete parte dos nomes dos arquivos de uma pasta (que são muitos), mas pela posição do caractere. Por exemplo, o arquivo abaixo:
20180101010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20180101_010000-v02.0-fv01.0.nc
Preciso apenas do inicio do nome "20180101", o resto seria deletado. Todos arquivos tem o mesmo comprimento (mesmo número de caracteres), mas a data (tem no começo e no fim do arquivo) interfere quando utilizo códigos que encontrei na internet.
Alguém sabe o que fazer?
Agradeço desde já.
Boa noite Mayna.
Seguem alternativas para "pegar" somente os oito primeiros caracteres:
NomeArq="20180101010000-OSISAF-L3C_GHRSST-SSTsubskin-GOES16-ssteqc_goes16_20180101_010000-v02.0-fv01.0.nc"
echo ${NomeArq:0:8}
20180101
sed: Apaga a partir do nono caractere:
sed -r 's/.//9g' <<< "$NomeArq"
grep:
grep -Eo '^[0-9]{8}' <<< $NomeArq
20180101
cut:
cut -b 1-8 <<< $NomeArq
cut -c 1-8 <<< $NomeArq
awk:
awk -F "" '{for(x=1;x<=8;x++) printf "%s" ,$x;printf "\n"}' <<< $NomeArq
É isso...
Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver