टेक्स्ट फ़ाइल से किसी विशेष प्रतीक के सभी उदाहरण कैसे निकालें?


13

मुझे एक विशाल (लगभग आधा GiB, एक सामान्य टेक्स्ट एडिटर का उपयोग करना असंभव है) CSV फ़ाइल को दोहरे उद्धरण चिह्नों में संलग्न फ़ील्ड के साथ पसंद किया गया है, "abc","def"लेकिन उद्धरण के बिना फ़ाइल की आवश्यकता है (मुझे यकीन है कि यह फ़ाइल संगतता को तोड़ने वाला नहीं है - एक अल्पविराम का उपयोग इसमें दिए गए मूल्यों के अंदर कभी नहीं किया जाता है)।

सभी उद्धरण (उनके स्थानों पर रिक्त स्थान को प्रस्तुत किए बिना) कैसे निकालें?

जवाबों:


21

tr वह कर सकता है:

tr -d \" < infile > outfile

आप यह भी उपयोग कर सकते हैं sed:

sed 's/"//g' < infile > outfile

1
आपने क्यों हटाया < infile > outfile? IMHO यह अधिक जानकारीपूर्ण था।
इवान

@ इवान मैंने सोचा कि यह शायद दूसरे विचार पर निहित था।
क्रिस डाउन

केवल जब अनुभवी कमांड लाइन उपयोगकर्ताओं के लिए। भले ही मैंने <कुछ समय पहले (MySQL और SQLite में SQL स्क्रिप्ट आयात करने के लिए) उपयोग <किया हो, यह मेरे लिए तुरंत स्पष्ट होगा कि मुझे इस मामले में उपयोग करना चाहिए । मुझे लगता है कि उन लोगों के आगे संदर्भ के लिए पूर्ण कमांड लाइन उदाहरण को वापस करना बेहतर होगा, जिन्हें इसकी आवश्यकता हो सकती है।
इवान

@ इवान और @ क्रिस, मैंने इसे वापस शामिल करने के लिए (लंबित समीक्षा) वापस कर दिया है < infile > outfile, आशा है कि यह ठीक है।
डोनोथिंग्स असफलता

धन्यवाद, @donothingsuccessfully मैंने पिछली टिप्पणी को पूरी तरह से गलत कर दिया है, यह एक दया है जिसे मैं इसे संपादित नहीं कर सकता -]
इवान

5

Sed कमांड का दूसरा संस्करण :

sed -i s/\"//g file.txt
  • sed s tream एड इटोर

    • -i मैं n- जगह (जगह में फ़ाइल संपादित करें)
    • sरों ubstitute आदेश
    • /replacement_from_reg_exp/replacement_to_text/ बयान
    • \"बैकस्लैश से पहले उद्धरण ( replacement_from_reg_exp )
    • स्लेश डेलेमिटर्स ( प्रतिस्थापन_टो_टेक्स्ट ) के बीच खाली स्ट्रिंग
    • g जी lobal (लाइन में सभी घटना को बदलने के लिए)
  • file.txt फ़ाइल का नाम

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