nl
é idealmente adequado:
nl -v2 -p -ba
começará a contar a partir de 2 ( -v2
), ignorando alterações de página ( -p
) e numerando todas as linhas ( -ba
).
Então eu tenho um intervalo, digamos 2-4. E eu tenho três linhas:
first
second
third
Eu preciso que minha saída seja:
2 first
3 second
4 third
Estou tentando isso no BSD (Mac) awk / sed, o que parece estar dificultando isso.
nl
é idealmente adequado:
nl -v2 -p -ba
começará a contar a partir de 2 ( -v2
), ignorando alterações de página ( -p
) e numerando todas as linhas ( -ba
).
POSIXLY:
awk '{printf("%s %s\n", FNR+1, $0)}' file
Se você quiser passar o parâmetro:
awk -vn=2 '{printf "%s %s\n", n++, $0}' <file
Se você deseja que apenas o intervalo seja produzido caso o arquivo seja maior que o intervalo:
awk -v s=2 -v e=4 'BEGIN{for(n=s;n<=e;n++)print n}' | paste -d' ' - file
Com script bash puro?
i=2; cat output.txt | while IFS= read -r line; do
echo "$i $line"
i=$((i+1))
done