awk

2011-06-29 7 views
15

का उपयोग करके '' `char को प्रतिस्थापित करने के लिए मेरे पास एक : और ' के साथ लाइनें हैं जिन्हें मैं छुटकारा पाना चाहता हूं। मैं इसके लिए awk का उपयोग करना चाहता हूं। मैं का उपयोग कर की कोशिश की है:awk

awk '{gsub ("[:\\']","") ; print $0 }' 

और

awk '{gsub ("[:\']","") ; print $0 }' 

और

awk '{gsub ("[:']","") ; print $0 }' 

उनमें से गैर काम किया, लेकिन त्रुटि Unmatched ". लौट आते हैं। जब मैं

awk '{gsub ("[:_]","") ; print $0 }' 

डाल तो यह काम करता है और सभी : और _ वर्ण निकालता है। मैं ' char से कैसे छुटकारा पा सकता हूं?

उत्तर

6

आप इस्तेमाल कर सकते हैं:

  1. एकल उद्धरण के लिए

    ऑक्टल कोड:

    [:\47] 
    
  2. दोहरे उद्धरण चिह्नों के अंदर एकल उद्धरण है, लेकिन स्थिति विशेष अक्षरों में खोल से विस्तार किया जाएगा :

    % print a\': | awk "sub(/[:']/, x)"   
    a 
    
  3. एक गतिशील regexp का उपयोग करें, लेकिन वहाँ प्रदर्शन इस दृष्टिकोण को संबंधित निहितार्थ हैं:

    % print a\': | awk -vrx="[:\\\']" 'sub(rx, x)' 
    a 
    
11

tr इस उद्देश्य के लिए किया जाता है

echo test\'\'\'\':::string | tr -d \': 
teststring 

$ echo test\'\'\'\':::string | awk '{gsub(/[:\47]*/,"");print $0}' 
teststring 
8

यह काम करता है:

awk '{gsub("[:'\'']",""); print}' 
6

बैश के साथ आप एक सम्मिलित नहीं कर सकते एक उद्धरण के साथ घिरा एक शाब्दिक के अंदर एकल उद्धरण। उदाहरण के लिए '"'"' का उपयोग करें।

पहले ' एक शाब्दिक युक्त केवल एक ही बोली के साथ वर्तमान शाब्दिक, तो "'" कोनकैटेनेट्स बंद कर देता है यह, और ' एक स्ट्रिंग शाब्दिक है, जो भी श्रेणीबद्ध किया जाएगा खोल देता है।

क्या आप चाहते हैं:

awk '{gsub ("[:'"'"']","") ; print $0; }' 

ssapkota वैकल्पिक भी अच्छा है ('\'')।

2

मुझे नहीं पता कि आप अपने आप को अजीब उपयोग करने के लिए क्यों सीमित कर रहे हैं, वैसे भी आपको अन्य उपयोगकर्ताओं से कई जवाब मिल गए हैं। आप ":"

sed 's/:\'//g' 

से छुटकारा पाने के लिए भी sed का उपयोग कर सकते हैं यह आपके उद्देश्य को भी पूरा करेगा। सरल और कम जटिल।

2

यह भी काम करता है:

awk '{gsub("\x27",""); print}'

0

सरल awk '{gsub(/\047|:/,"")};1'

संबंधित मुद्दे