पहले ज्ञात चरित्र को एक स्ट्रिंग में सेड के साथ हटाएं


12

कैसे एक स्ट्रिंग में पहली ज्ञात चरित्र को sed के साथ हटाता है?

उदाहरण के लिए, मान लें कि मैं स्ट्रिंग "@ ABCDEFG1234" में पहला वर्ण (जो @ है) हटाना चाहता हूं

मैं यह सत्यापित करना चाहता हूं कि पहले वर्ण के रूप में "@" मौजूद है या नहीं। यदि ऐसा है, तो उसे चरित्र को हटा देना चाहिए।

जवाबों:


10

sed 's/^@\(.*\)/\1/'

^ स्ट्रिंग की शुरुआत का मतलब है

@ आपके ज्ञात चार

(.*) बाकी, कब्जा कर लिया

तब कैप्चर किए गए ब्लॉक को आउटपुट के लिए सॉरी किया जाएगा। सॉरी, फिलहाल इसका परीक्षण नहीं कर सकता है, लेकिन ऐसा कुछ होना चाहिए


18

पकड़ने और बदलने की कोई आवश्यकता नहीं है।

sed 's/^@//'

यह चरित्र की जगह लेता है @जब यह ^स्ट्रिंग में पहली बार होता है, कुछ भी नहीं के साथ। इस प्रकार, इसे हटाना।


0

आप इसके बजाय यह कर सकते हैं।

sed 's /^.//'

^ - Starting character 
. - No of charactes(.. means two characters)

उदाहरण :

echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123

1
प्रश्न कहता है, "मैं चाहता हूं कि यह सत्यापित किया जाए कि क्या" @ "पहले चरित्र के रूप में मौजूद है। यदि ऐसा है, तो उसे चरित्र को हटा देना चाहिए। ” आपका उत्तर प्रत्येक पंक्ति के पहले वर्ण को हटा देता है, चाहे वह कुछ भी हो। उदाहरण के लिए, यदि कोई रेखा सम्‍मिलित है test123, तो ऐसा लगता है कि ओपी चाहता है कि वह अकेला रह जाए।
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.