मैं सीड में व्हॉट्सएप का मिलान कैसे कर सकता हूं? अपने डेटा में मैं सभी 3 + बाद के व्हाट्सएप कैरेक्टर (टैब स्पेस) से मिलान करना चाहता हूं और उन्हें 2 स्पेस से बदलना चाहता हूं। यह कैसे किया जा सकता है?
मैं सीड में व्हॉट्सएप का मिलान कैसे कर सकता हूं? अपने डेटा में मैं सभी 3 + बाद के व्हाट्सएप कैरेक्टर (टैब स्पेस) से मिलान करना चाहता हूं और उन्हें 2 स्पेस से बदलना चाहता हूं। यह कैसे किया जा सकता है?
जवाबों:
चरित्र वर्ग \s
खाली स्थान के पात्रों से मेल खाएगा <tab>
और <space>
।
उदाहरण के लिए:
$ sed -e "s/\s\{3,\}/ /g" inputFile
दो स्थानों के साथ कम से कम 3 व्हाट्सएप के हर क्रम को स्थानापन्न करेगा।
REMARK : POSIX अनुपालन के लिए, चरित्र वर्ग का उपयोग [[:space:]]
करने के बजाय \s
, क्योंकि बाद एक जीएनयू sed विस्तार है। POSIX विनिर्देशों को sed और BREs के लिए देखें
[[:space:]
एक का उपयोग कर सकते हैं [[:blank:]]
जो क्षैतिज टैब और रिक्त स्थान से मेल खाता है (लेकिन कोई नया अंक, ऊर्ध्वाधर टैब आदि)।
यह MacOS 10.8 पर काम करता है:
sed -E "s/[[:space:]]+/ /g"
sed "s/[[:space:]]\+/ /g"
एक या अधिक स्थानों से मेल खाना चाहते हैं ।
-E
फ्लैग को भी सपोर्ट करता है ।
Sed के कुछ पुराने संस्करण एक सफेद स्पेस मिलान टोकन के रूप में पहचान नहीं सकते हैं। उस स्थिति में आप '[XZ] [XZ] *' के साथ एक या अधिक रिक्त स्थान और टैब के अनुक्रम का मिलान कर सकते हैं जहां X एक स्थान है और Z एक टैब है।
sed 's/[ \t]*/"space or tab"/'
sed
भी सिस्टम के किसी भी संस्करण पर काम करने की गारंटी है? यदि यह उल्लेख के लायक नहीं है कि यह अन्य उत्तरों की तरह समान तरीके से कहां काम करता है, तो बस हम सीमाओं को जानते हैं और जहां इसका अपेक्षित परिणाम नहीं हो सकता है।