ID,h1,h2,h3,h4,h5,h6,h7 101,zebra,1,papa,4,dog,3,apple 102,2,yahoo,5,kangaroo,7,ape
我想在没有标题和第一列的情况下将行排序到此文件中.我的输出应该是这样的.
ID,h7 101,apple,zebra 102,ape,yahoo
我尝试了以下AWK,但不知道如何排除标题和第一列.
awk -F"," ' {s=""for(i=1; i<=NF; i++) { a[i]=$i; }for(i=1; i<=NF; i++){for(j = i+1; j<=NF; j++){if (a[i] >= a[j]){temp = a[j];a[j] = a[i];a[i] = temp;}}}for(i=1; i<=NF; i++){ s = s","a[i]; }print s} ' file
谢谢
解决方法 如果perl没问题:$perl -F,-lane 'print join ",",$.==1 ? @F : ($F[0],sort @F[1..$#F])' ip.txtID,h7 101,zebra102,yahoo
> -F,表示作为字段分隔符,结果保存在@F数组中
>有关其他选项的详细信息,请参阅https://perldoc.perl.org/perlrun.html#Command-Switches
> join“,”使用,作为输出字段分隔符
> $.== 1? @F代表第一行,按原样打印
>($F [0],排序@F [1 .. $#F])其他行,获取其他字段的第一个字段和排序输出
> ..是范围运算符,$#F将给出最后一个字段的索引
对于给定的标题,排序第一行也会起作用,因此这可以简化所需的逻辑
$perl -F,$F[0],sort @F[1..$#F]' ip.txtID,yahoo$ruby -F,-lane 'print [$F[0],$F.drop(1).sort] * ","' ip.txtID,yahoo总结
以上是内存溢出为你收集整理的awk – 在没有标题和第一列的csv文件中对行进行排序全部内容,希望文章能够帮你解决awk – 在没有标题和第一列的csv文件中对行进行排序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)