次の入力データがあります。
student:xxxxx
student:yyyyy
student:zzzzz
student:kkkkk
student:.
teacher:aaaaa
teacher:bbbbb
teacher:lllll
teacher:.
student:sssss
student:mmmmm
student:.
次のデータを抽出する必要があります。
student:xxxxx yyyyy zzzzz kkkkk.
teacher:aaaaa bbbbb lllll.
student:sssss mmmmm.
sed
次の方法でどのようにこれを行うことができますか?awk
ベストアンサー1
$ cat tst.awk
BEGIN { FS=":" }
{
if ($2==".") {
ORS = "\n"
OFS = ""
cnt = 0
}
else {
ORS = ""
OFS = " "
cnt++
}
print (cnt==1 ? $0 : OFS $2)
}
$ awk -f tst.awk file
student:xxxxx yyyyy zzzzz kkkkk.
teacher:aaaaa bbbbb lllll.
student:sssss mmmmm.
それがどのように機能するのかわからない場合は、Arnold Robbinsが書いた本Effective Awkプログラミング、第4版で使用されているすべての構成を研究できます。