У меня есть файл, который выглядит примерно так:
dog
cat
dog
dog
fish
cat
Я хотел бы написать какой-нибудь код в Bash, чтобы файл был отформатирован как:
dog:1
cat:1
dog:2
dog:3
fish:1
cat:2
Есть идеи, как это сделать? Файл очень большой (> 30 тыс. Строк), поэтому код должен быть несколько быстрым.
Я думаю, что-то вроде l oop ...
Вот так:
while read line;
echo "$line" >> temp.txt
val=$(grep $line temp.txt)
echo "$val" >> temp2.txt
done < file.txt
А потом paste -d ':' file1.txt temp2.txt
Однако, Я обеспокоен тем, что это будет очень медленно, так как вы идете построчно. Что думают другие люди?