我有一个文本文件,该记录采用以下格式。请注意,名称,ID和等级部分中没有空文件。
"NAME","STUDENT1"
"ID","123"
"RANK","10"
"NAME","STUDENT2"
"ID","124"
"RANK","11"
我必须将上述文件转换为以下格式
"STUDENT1","123","10"
"STUDENT2","124","11"
据我所知,这可以通过读取记录并将其写入另一个输出文件来使用shell脚本来实现。但这可以使用awk或sed吗?
答案 0 :(得分:1)
$ awk -F, '{ORS=(NR%3?FS:RS); print $2}' file
"STUDENT1","123","10"
"STUDENT2","124","11"
答案 1 :(得分:0)
使用awk
:
awk -F, '$1=="\"RANK\""{print $2;next}{printf "%s,",$2}' file
答案 2 :(得分:0)
使用awk,每3行打印换行符:
awk -F, '{printf "%s",$2;if (NR%3){printf ","}else{print""};}'
答案 3 :(得分:0)
关注awk
也可以帮助您。
awk -F, '{ORS=$0~/^"RANK/?"\n":FS;print $NF}' Input_file
答案 4 :(得分:0)
使用sed
sed -E 'N;N;;y/\n/ /;s/([^,]*)(,[^ ]*)/\2/g;s/,//' infile