Tente isto:
for i in ./*.mcp; do
if [ -f "$i" ]; then
tail -1 "$i"
fi
done | awk '{ print NR, $8, $9, $10 }'
for i in 'ls -d *mcp'; do
tail -1 "$i" | awk '{ printf "%s %s %s\n", $8, $9, $10}' >> ${Pout}${output}
done
echo "Finished Looping through each file."
O que eu quero como saída é:
1 45 60 5
2 30 67 3
3 40 12 4
.
.
.
em que a coluna '45 representa $ 8, 60 representa $ 9 e 5 representa $ 10. o 1,2,3, etc. é o que eu preciso para a saída. Eu essencialmente preciso imprimir o número da linha.
Com o GNU awk
(versão 4.x) tente isto:
awk 'ENDFILE { printf "%d %s %s %s\n", ++c, $8, $9, $10}' *mcp > "${Pout}${output}"
echo "Finished Looping through each file."
Com outros awk
s e shells como bash
try:
for f in *mcp
do
awk -v c="$((++c))" 'END { printf "%d %s %s %s\n", c, $8, $9, $10}' "$f"
done > "${Pout}${output}"
echo "Finished Looping through each file."