2011-06-09 11 views
26

मैं इस समस्या को हल करने का सबसे आसान तरीका ढूंढ रहा हूं। मैं एक बहुत बड़ा डेटा सेट है कि मैं प्रारूपयूनिक्स उपकरण और एकाधिक कॉलम के साथ छंटनी

This is a sentence|10 
This is another sentence|5 
This is the last sentence|20 

मुझे क्या करना चाहते हैं प्रकार सबसे बड़ी संख्या के आधार पर यह कम से कम से करने के लिए है के इस प्रकार के एक्सेल में लोड नहीं कर सकता है।

cat MyDataSet.txt | tr "|" "\t" | ??? 

सुनिश्चित नहीं हैं कि सबसे अच्छा तरीका यह करने के लिए क्या है, मैं कॉलम स्विच करने के लिए और एक तरह से कर awk का उपयोग कर के बारे में सोच रहा था, लेकिन मैं मुसीबत यह कर रहा था।

मेरी मदद कृपया

+0

हां, आप टेक्स्ट के रूप में आयात करते समय इस प्रकार के डेटा को Excel में आयात कर सकते हैं, फिर "|" निर्दिष्ट करें डेलीमीटर के रूप में। –

उत्तर

35
sort -t\| -k +2n dataset.txt 

यह करना चाहिए।

: क्षेत्र विभाजक और वैकल्पिक कुंजी चयन

+2

'+ 2' में' + 'का उद्देश्य क्या है? – brandizzi

+1

पहले सीमांकित समूह पर दूसरे सीमित समूह में फ़ोकस करने से सॉर्ट को स्थानांतरित करने के लिए। – zellio

+4

@brandizzi: आदत। सॉर्ट किए गए पुराने संस्करणों का उपयोग + और - यह संकेत करने के लिए कि कौन से कॉलम सॉर्ट करना है और किस प्रकार सॉर्ट नहीं करना है। जीएनयू सॉर्ट एक अलग तकनीक का उपयोग करता है जिसकी आवश्यकता नहीं होती है (लेकिन + पर भी बार्फ़ नहीं होती है) –

7

आप -n तरह की कोशिश की

$ sort -n inputFile 
This is another sentence|5 
This is a sentence|10 
This is the last sentence|20 

आप awk साथ कॉलम स्विच कर सकता भी

$ awk -F"|" '{print $2"|"$1}' inputFile 
10|This is a sentence 
5|This is another sentence 
20|This is the last sentence 

awk और प्रकार के संयोजन है प्रति टिप्पणियां

आप वाक्य

$ sort -n -t"|" -k2 inputFile 
This is another sentence|5 
This is a sentence|10 
This is the last sentence|20 
this is a sentence with a number in it 2|22 

और निश्चित रूप से आप एक नया फाइल करने के लिए यह अनुप्रेषित सकता है में नंबर हैं:

$ awk -F"|" '{print $2"|"$1}' inputFile | sort -n > outFile 
+0

यह केवल तभी काम करेगा जब वाक्य में कोई संख्या न हो। – zellio

+0

सच है, मैं उस उदाहरण से बाहर जा रहा था जिसकी उसने प्रतिलिपि बनाई थी। – matchew

2

संख्या से क्रमबद्ध, विभाजक बदल सकते हैं और का उपयोग कर दूसरे समूह को आकर्षित तरह।

sort -n -t '|' -k2 file.txt 
3

इस तरह आदेश की कोशिश करो। उस ने कहा, आप सॉर्ट फ़िल्टर का उपयोग कर सकते हैं।

sort -t "|" -k 2 -n MyDataSet.txt 

इस प्रकार MyDataSet.txt फ़ाइल का उपयोग कर | क्षेत्र विभाजक के रूप में चरित्र और संख्यात्मक रूप से दूसरे क्षेत्र (संख्या) के अनुसार क्रमबद्ध करें।

13

आप आम तौर पर एक फिल्टर करने के लिए फ़ाइल भेजने के लिए बिल्ली की जरूरत नहीं है:

sort -n -t'|' -k2 dataset.txt 
संबंधित मुद्दे