나는 오랫동안 이 문제를 해결하려고 노력해 왔습니다. 몇 가지 조언을 해주세요.
파일 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