पाइपलाइन सीमांकक और कुछ क्षेत्रों में अल्पविराम होते हैं जिन्हें दोहरे उद्धरण चिह्नों में रखा जाना चाहिए और इसे एकल दायर के रूप में लिया जाना चाहिए [बंद]


-3

मैं एक सीएसवी फ़ाइल है।

इनपुट।

India|Andhra|asd,ged,ijn|telangana|41657|hgjd,dfef,edf|dfd

उत्पादन

India,Andhra,"asd,ged,ijn",telangana,41657,"hgjd,dfef,edf",dfd

1
अब तक तुमने क्या प्रयास किये हैं? उस प्रयास ने आपकी अपेक्षाओं से कैसे विचलन किया?
फॉक्स

2
प्रश्न का वर्णन करने के लिए आपके प्रश्न के मुख्य भाग में बहुत सारे वर्ण उपलब्ध हैं। ऐसा महसूस न करें कि आपको इसे शीर्षक में फिट करने की आवश्यकता है, कृपया और धन्यवाद!
जेफ स्कालर

awk '{gsub (/ [^ |] + /, "\" और \ "" ")} 1' मैंने यह कोशिश की, लेकिन यह पूरे डेटा की जगह ले रहा है
असवानी

awk '{gsub (/ [^ |] + /, "\" और \ "")} 1' मैंने यह कोशिश की लेकिन यह पूरे डेटा की जगह ले रहा है इनपुट: भारत | आंध्र | asd, ged, ijn | telangana। 41657। hgjd , dfef, edf | dfd apple | grape | नारंगी | स्ट्रॉबेरी | 12543 | आम का उत्पादन: भारत, आंध्र, "asd, ged, ijn", telangana, 41657, "hgjd, dfef, edf", dfd Apple, अंगूर, नारंगी। स्ट्रॉबेरी, 12543, आम या भारत | आंध्र | "asd, ged, ijn" | telangana। 41657 "hgjd, dfef, edf | dfd" सेब | अंगूर | नारंगी | स्ट्रॉबेरी | 12543 | आम
Aswani

awk -F\| -vOFS=, '{for(i=1;i<=NF;i++)if($i~OFS)$i="\""$i"\""; print}'; लेकिन जैसा कि दूसरे ने कहा है, एक सीएसवी उपकरण का उपयोग करें, जो जानता है कि सीएसवी के प्रारूप नुकसान से कैसे निपटें।
मॉसवी

जवाबों:


2

Csvkitcsvformat से उपयोग करना :

$ csvformat -d '|' file.csv
India,Andhra,"asd,ged,ijn",telangana,41657,"hgjd,dfef,edf",dfd

सीएसवी-टूलबॉक्स में उपकरण CSV- अवगत हैं (वे सभी CSV पार्सर संशोधित करने और क्वेरी करने के लिए हैं और आम तौर पर कमांड लाइन पर CSV फ़ाइलों के साथ काम करते हैं)।

यहां, मैं csvformatइनपुट फ़ाइल को पुन: स्वरूपित करने के लिए उपयोग करता हूं और मैं निर्दिष्ट करता हूं कि इनपुट में फ़ील्ड सीमांकक का उपयोग करके एक पाइप प्रतीक है -d '|'। उत्पादन क्षेत्र के सीमांकक के रूप में डिफ़ॉल्ट रूप से कॉमा का उपयोग करेगा, और उपकरण आवश्यक रूप से बच जाएगा और चीजों को उद्धृत करेगा।


awk '{gsub (/ [^ |] + /, "\" और \ "" ")} 1' मैंने यह कोशिश की थी लेकिन यह पूरे डेटा की जगह ले रहा है। मैंने csvformat -d 'के साथ कोशिश की।' ' file.csv मुझे त्रुटि के रूप में -shh मिल रहा है: csvformat: नहीं मिला [ऐसी कोई फ़ाइल या निर्देशिका नहीं]
असवानी

@ अस्वनी csvformatडिफ़ॉल्ट रूप से स्थापित है। आपको मैन्युअल रूप से csvkit स्थापित करना होगा। यह pip install --user csvkitऔर फिर ~/.local/binअपने पथ को जोड़ने के साथ किया जा सकता है ।
Kusalananda

इसका साझा सर्वर तो हमारे पास स्थापित करने के अधिकार नहीं हैं
असवानी

@Aswani मेरे द्वारा बताई गई कमांड आपके होम डायरेक्टरी में स्थापित होगी।
Kusalananda

जब मैं इसकी प्रॉम्प्टिंग त्रुटि को -ksh के रूप में स्थापित करने की कोशिश कर रहा हूं: पाइप: नहीं मिला [ऐसी कोई फ़ाइल या निर्देशिका] नहीं
असवानी

0

यदि आपके पास माणिक स्थापित है:

ruby -rcsv -e '
    rdr = CSV.new(File.new(ARGV.shift), col_sep: "|")
    wtr = CSV.new($stdout)
    rdr.each {|row| wtr << row}
' file.csv
India,Andhra,"asd,ged,ijn",telangana,41657,"hgjd,dfef,edf",dfd

मेरे सर्वर में कोई माणिक स्थापित नहीं है :(
अश्विनी

मैं पोटीन और im फ़ाइल प्रारूपण के लिए यूनिक्स खोल स्क्रिप्ट लिख उपयोग कर रहा हूँ
Aswani
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.