私は長い間この問題を解決しようとしてきました。いくつかのアドバイスをしてください。
ファイル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