linux系统 如何提取奇数列

1、遇到一个数据需要提取奇数列  

[root@linuxprobe test]# cat test.txt
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060
[root@linuxprobe test]# seq -f %03g 60 | xargs -n 30 > test.txt
[root@linuxprobe test]# seq -f c%02g 30 | xargs |cat - test.txt > a && mv a test.txt
[root@linuxprobe test]# cat test.txt
c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060

 linux系统 如何提取奇数列

 

 

2、测试程序 ,生成过度文件tmp.txt (奇数列的转置文件)

[root@linuxprobe test]# ls
test.txt
[root@linuxprobe test]# awk {print NF} test.txt | head -n 2  ##查看列数  
30
30
[root@linuxprobe test]# for i in `seq 1 2 30`;do awk -v a=$i {print $a } test.txt|tr "\n" " "|sed s/$/\n/ >> tmp.txt; done ###生成临时文件tmp.txt
[root@linuxprobe test]# ls
test.txt  tmp.txt
[root@linuxprobe test]# cat tmp.txt  ##奇数列文件的转置文件
c01 001 031
c03 003 033
c05 005 035
c07 007 037
c09 009 039
c11 011 041
c13 013 043
c15 015 045
c17 017 047
c19 019 049
c21 021 051
c23 023 053
c25 025 055
c27 027 057
c29 029 059

linux系统 如何提取奇数列

 

 

3、对临时文件转置生成结果文件

[root@linuxprobe test]# awk {print NF} tmp.txt | head -n 2 ##查看列数 
3
3
[root@linuxprobe test]# for i in `seq 3`;do cut -d " " -f $i tmp.txt | tr "\n" " " | sed s/$/\n/  >> result.txt;done ##对临时文件转置,生成结果文件
[root@linuxprobe test]# cat result.txt
c01 c03 c05 c07 c09 c11 c13 c15 c17 c19 c21 c23 c25 c27 c29
001 003 005 007 009 011 013 015 017 019 021 023 025 027 029
031 033 035 037 039 041 043 045 047 049 051 053 055 057 059

linux系统 如何提取奇数列

 

 已经提取奇数列结果文件。

 

程序慢,目前没找到更好的方法。

 

linux系统 如何提取奇数列

上一篇:ASM CRS 实例启动和关闭


下一篇:linux中的文件查找命令