2012-05-17 11 views
7

में एक डेलीमीटर के आधार पर विभाजित लाइनें मेरे पास कुछ डेटा है जो नीचे दिए गए कुछ SQL क्वेरी द्वारा वापस किया जा रहा है। मैं एक डिलीमीटर के आधार पर लाइनों को अलग करने और इसे नई लाइन पर भेजने की कोशिश कर रहा हूं। मैं कैसे कर सकता हूं .. यूनिक्स में ऐसा मैं खोल-पटकथा का उपयोग कर की कोशिश की लेकिन के माध्यम से नहीं कर सके ...यूनिक्स

ALB|1001|2012-04-15 ALB|1001|2012-04-14 ALB|1001|2012-04-16 ALB|1001|2012-04-17 


ALB|1001|2012-04-15 
ALB|1001|2012-04-14 
ALB|1001|2012-04-16 
ALB|1001|2012-04-17 
+0

क्या आप एक गैर-बैश लिखित समाधान के लिए खुले रहेंगे? यह पायथन आदि में काफी मामूली होगा। उदाहरण के लिए, 's.split() में, क्योंकि मैं आपकी स्ट्रिंग – Levon

+0

में प्रिंट करता हूं हां वह स्थान आउटपुट के हिस्से के रूप में आ रहा है ... मैं कसरत करने की कोशिश कर रहा हूं यूनिक्स पर .. – Teja

+0

आपके द्वारा उपयोग किए जा रहे SQL टूल पर अपने आउटपुट लाइन-सेपरेटर को ठीक करने के लिए बेहतर है। सौभाग्य। इसका बहुत सरल – shellter

उत्तर

18

कि विशेष रूप से उदाहरण के लिए, tr ' ' '\n' < file काम करने के लिए चाहिए:

echo "ALB|1001|2012-04-15 ALB|1001|2012-04-14 ALB|1001|2012-04-16 ALB|1001|2012-04-17" | tr ' ' '\n' 
+0

आप इसे पूरी तरह पोस्ट कर सकते हैं ... एक अच्छा सरल उपाय – Teja

+1

+1 प्यार यह twalberg .. और आसान .. धन्यवाद .. :) – Levon

+0

के लिए – Teja

8

xargs एक सरल एकल है प्रोग्राम आप ऐसा करने के लिए उपयोग कर सकते हैं, जैसे:

$ echo "ALB|1001|2012-04-15 ALB|1001|2012-04-14 ALB|1001|2012-04-16 ALB|1001|2012-04-17"|xargs -d' ' -n1 
ALB|1001|2012-04-15 
ALB|1001|2012-04-14 
ALB|1001|2012-04-16 
ALB|1001|2012-04-17 
+0

+1 वर्षों के लिए 'xarg' का उपयोग कर रहा है, स्पष्ट रूप से एक गलती से पहले कमांड लाइन विकल्पों को कभी नहीं देखा। – Levon

+2

'-d' ओएस एक्स पर 'xargs' के लिए एक विकल्प नहीं है। बस सोचा कि मैं इसे जोड़ दूंगा ... – 2rs2ts

+0

' xargs' में एक (छुपा) दोष है - यह कोई प्रोग्राम नहीं होने पर '/ bin/echo' का उपयोग करता है चलाने के लिए निर्दिष्ट किया गया है और इस प्रकार यह अक्सर चल रहा है - हर इनपुट तत्व पर ध्यान देने योग्य प्रदर्शन दंड के साथ – poige