需要帮助脚本

需要帮助脚本

我长期以来一直在尝试解决这个问题。请给我指点迷津。

文件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

相关内容