Chinaunix

标题: 【求助】数据文件如何反序排列? [打印本页]

作者: jeems    时间: 2014-03-03 15:20
标题: 【求助】数据文件如何反序排列?
源文件:
Host;1;2;3;4;5
Server;5;4;3;2;1

想反序排列成:

Host;5;4;3;21
Server;1;2;3;4;5

还没想到好的方法,请各位帮忙,谢谢


作者: jason680    时间: 2014-03-03 15:24
回复 1# jeems

# awk -F";" '{printf $1;for(n=NF;n>1;n--)printf ";"$n;print""}' FILE
Host;5;4;3;2;1
Server;1;2;3;4;5

   
作者: yestreenstars    时间: 2014-03-03 15:26
本帖最后由 yestreenstars 于 2014-03-03 15:27 编辑
  1. awk -F\; '{s=$1;for(i=NF;i>1;i--)s=s";"$i;print s}'
复制代码

作者: yinyuemi    时间: 2014-03-03 15:32
回复 1# jeems
  1. sed -r 's/;/\n/g;:a;s/([^\n]+)(\n.*)?\n(.+)/\1;\3\2/;ta'
复制代码

作者: yestreenstars    时间: 2014-03-03 15:38
  1. perl -F\; -lane 'print join ";",shift @F,reverse @F'
复制代码

作者: LikeLx    时间: 2014-03-03 16:44
本帖最后由 LikeLx 于 2014-03-03 16:44 编辑
  1. awk -F ';' '{printf $1;for(i=NF+1;i-->2;) printf FS $i;print ""}'
复制代码

作者: kernel69    时间: 2014-03-03 18:07
如何?
  1. [@~]$ cat 11.txt
  2. Host;1;2;3;4;5
  3. Server;5;4;3;2;1
  4. [@~]$ perl -F';' -lane 'BEGIN{$,=";"};print $F[0],reverse @F[1..$#F]' 11.txt
  5. Host;5;4;3;2;1
  6. Server;1;2;3;4;5
  7. [@~]$
复制代码
回复 1# jeems


   
作者: rogantianwz    时间: 2014-03-03 18:20
回复 1# jeems


    tac urfile
作者: rogantianwz    时间: 2014-03-03 18:21
回复 8# rogantianwz


    哦,看错了!
作者: jeems    时间: 2014-03-05 10:24
回复 2# jason680


    谢谢,这个搞定
作者: jeems    时间: 2014-03-05 10:24
回复 3# yestreenstars

谢谢,这个也可以

   
作者: jeems    时间: 2014-03-05 10:35
回复 4# yinyuemi

SED的方法也works了,谢谢


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2