我长期以来一直在尝试解决这个问题。请给我指点迷津。
文件1.txt
Alya Grant
cat
dog
Ava
dog
tiger
snake
Samia
bus
train
car
plane
我需要的输出结果是这样的。
Alya Grant
cat
dog
Alya Grant=2
Ava
dog
tiger
snake
Ava=3
Samia
bus
train
car
plane
Samia=4
(或)像这样
Alya Grant=2
Ava=3
Samia=4
答案1
假设/path/to/input-file
包含您在帖子中提到的列表,我们可以使用:
awk 'BEG{name="";count=0}{if ($0 == "") { print name "=" count; name = ""; count=0; } else { if (name == "") { name = $0; } else {count = count + 1} }}END{print name "=" count;}' /path/to/input-file
Alya Grant=2
Ava=3
Samia=4
答案2
对于 awk,使用一系列空行作为记录分隔符和换行符作为字段分隔符。那么输出只是第一个字段和字段数减 1。
awk '
BEGIN {FS = "\n"; RS = ""; OFS = "="}
{ print $1, NF - 1 }
' file1.txt