標籤:
#/bin/bash#對文本裡面的資料進行排序awk 'BEGIN{RS=","}{print $0}END{}'<a | sort -n | sed '/^$/ d' | awk 'BEGIN{RS="\n";ORS=","}{print $0}END{}'|sed 's/,$//g'下面是c++版本的。----------------------------------------------------------------------#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;template<int _N>class Bitset{public:Bitset(){_Tidy();//調用_Tidy()函數會初始化所有位為0.}void Show()//顯示01位.{for(int _I=0;_I<_N;_I++){cout<<(test(_I)?'1':'0');}}bool test(int _P)//測試該位置是否為真(1).{int _I = _P/32;return (A[_I]>>(_P%32))&0x1;}void _Tidy(){for(int _I=0;_I<_W;_I++){A[_I] = 0;}}void set(int _P)//將_p下標設定為1.{int _I = _P/32;A[_I] |= (0x1<<(_P%32));}void printf(){for(int _I=0;_I<_N;_I++){test(_I) && (cout<<_I<<" ");}}//列印排列結果.private: typedef long LONG;//以long的4個位元組為一個單位元組.enum{_Nw=(_N-1)/(sizeof(LONG)*8),_W=_Nw+1};int A[_W];};template<int _N>void deal_what(int &sum,char c,Bitset<_N> &a,FILE *&out){if(c!=' ' && c!=',' && c!='\n'){sum=(sum*10+(c-'0'));return ;}else{a.set(sum);//將資料設定到指定位中。}sum = 0;}template<int _N>void get_result(Bitset<_N> &a,FILE *&out){int sum = 0;while(1){char c = fgetc(out);if(c==EOF){return;}deal_what<_N>(sum,c,a,out);}}int get_value(int x,int &n)//求數字位元{x && (n=get_value(x/10,n)+1);return n;}template<int _N>void in_put(Bitset<_N> &a,FILE *&in)//往檔案b裡面寫入結果。{for(int _I=0;_I<_N;_I++){if(a.test(_I)) {int _H=_I;int _K = 0;get_value(_H,_K);int flog = _K;int save=0;while(1){ int sum=1; for(int _J=_K;_J>0;_J--) {sum*=10; } char c = ((_H-save*sum)/(sum/10))+'0'; save = _H/(sum/10); fputc(c,in) ; flog--; _K--; if(flog==0)break;} fputc(' ',in);}}}int main(){FILE *out = fopen("a","a+");FILE *in = fopen("b","a+"); Bitset<100> a;get_result(a,out);in_put(a,in);fclose(out);fclose(in);}
C++對文本裡面的大量資料進行排序(shell,c++,fopen,awk,sed)