Добавить номер строки в конец строки

Есть несколько файлов с разным количеством строк. Нужно пронумеровать строки, указав номер строки в конце этой строки.

cat temp1
отчет ноябрь
отчет декабрь

Ожидаемый результат

cat temp2
отчет ноябрь [1]
отчет декабрь [2]

Пробовал for, но ожидаемый результат получить не удалось.


Ответы (1 шт):

Автор решения: Ainar-G

Если под «Bash» вы подразумеваете «shell-скрипт», то можно с помощью Awk:

awk '{print($0 " [" NR "]")}' ./tmp.txt

Чтобы заменить содержимое файла вместо вывода в stdout:

awk '{print($0 " [" NR "]")}' ./tmp.txt | sponge ./tmp.txt

На самом же Bash это будет как-то так:

i=1
while read -r line
do
	echo "$line [$i]"
	((i++))
done 
→ Ссылка