Então, você tem alguma variável shell, $Bus_date
que você quer adicionar em uma linha sozinha como cabeçalho. Em seguida, deve seguir o conteúdo de $Source_Dir/$Output_File_Name
, seguido pela string EOFNN
, em que NN
é o número de linhas nesse arquivo menos um.
Usando awk
:
awk -v head="$Bus_date" 'BEGIN { print head } { print } END { print "EOF" NR-1 }' "$Source_Dir/$Output_File_Name" >"$Target_Dir/$Output_File_Name"
O script é:
BEGIN { print head }
{ print }
END { print "EOF" NR-1 }
Na linha de comando, definimos a awk
variable head
para o valor de $Bus_date
. Este valor é gerado antes de começarmos a ler a partir do arquivo fornecido, pelo bloco BEGIN
.
O bloco { print }
garante que o arquivo fornecido seja passado como está, sem modificação.
O bloco END
usa a variável interna NR
que contém o número de registros (linhas) lidos até o momento. No bloco END
, NR
será o número de linhas no arquivo que foi lido.