awk 'ORS=NR%2?",":"\n"' 这句AWK如何解释 真心求教

awk 'ORS=NR%2?",":"n"' 这句AWK如何解释 真心求教
awk 'ORS=NR%2?",":"n"'
这句话如何解释,AWK大牛告之
龙的传神1 1年前 已收到1个回答 举报

CJC221 幼苗

共回答了23个问题采纳率:91.3% 举报

这个是奇数行末尾输出逗号,偶数行换行(输出"n"),形成两两一组,如下:
奇数行,偶数行
奇数行,偶数行
……
这句话是通过改变 输出的 记录分隔符ORS 来实现的,ORS默认是换行符"n"
NR是当前的行号,用NR%2取余来判断是否为奇数行 如果是则将ORS赋值为"," ,否则赋值为"n",用的是一个三元操作 A?B:C 满足A则B否则C 也可以写成
awk 'if(NR%2){ORS=","}else{ORS="n"}'
这样就使得奇数行的记录分隔符ORS是逗号,偶数行是换行,从而实现了想要的功能

1年前

6
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.071 s. - webmaster@yulucn.com