Analisando um nome de arquivo e adicionando-o a um arquivo de texto

0

Eu tenho um diretório cheio de arquivos com a data em que eles foram criados no nome do arquivo (ou seja, "mvr-20160420.csv"). Os arquivos contêm dados delimitados por vírgulas que estou combinando em um único arquivo de texto. Eu estou tentando descobrir como adicionar a parte da data de cada arquivo para os dados. Eu sou capaz de ler os arquivos, mas não os nomes dos arquivos.

Exemplo de arquivo para mvr-20160420.csv:

client employee id,first name,last name,points
14204,Bob,Smith,5

Eu tenho um script Korn e apenas adiciono o nome do arquivo aos dados:

for file in $Folder/path/burnsmcd-mvr*.csv
do 
FN=file

if [ $FIRSTTIME = $STATUS_OK ]
then 
  FIRSTTIME=$STATUS_NOT_OK
  cat $file | strings | sort -n | awk 'BEGIN{FS=","}{OFS="|"}{if ( $1 ~ /^[0-9]+$/) print "ADMVR", $1, $2, $3, $4, $FN}' > $Folder/path/ext_test.txt
else      
  cat $file | strings | sort -n | awk 'BEGIN{FS=","}{OFS="|"}{if ( $1 ~ /^[0-9]+$/) print "ADMVR", $1, $2, $3, $4, $FN}' >> $Folder/path/ext_test.txt
fi
done

Então minha saída ext_test.txt se parece com isso:

14204|Bob|Smith|5|14204,Bob,Smith,5

Não consigo adicionar o nome do arquivo. Eu também preciso extrair a parte da data.

    
por elzar 21.04.2016 / 15:14

1 resposta

0

$ awk 'BEGIN {OFS=","} 
      { split (FILENAME, parts, "[-.]"); print FILENAME, parts[2], $0 }' \
      mrv-20161225.csv 
mrv-20161225.csv,20161225,client employee id,first name,last name,points
mrv-20161225.csv,20161225,14204,Bob,Smith,5

Uma manhã sem awk é como um longo dia de trabalho. ;-)

    
por 21.04.2016 / 15:44