संपूर्ण फ़ाइल के लिए स्टार विशिष्ट पैटर्न के साथ नंबर बदलें


2

अपनी फाइल में मैं नंबर को बदलना चाहता हूं *

उदाहरण:

data[0] ---> data[*]

मेरे पास है data[0] सेवा मेरे data[127] और पूरी फ़ाइल के लिए भी करना चाहते हैं। तो मैं केवल संख्या के लिए कैसे कर सकता हूं?

मैंने कमांड के साथ कोशिश की

sed 's/[[0-9][0-9]]/[*]/g'

लेकिन यह ठीक से काम नहीं करता है।

तो कृपया मेरा मार्गदर्शन करें।


यह उतना सरल क्यों नहीं होना चाहिए sed 's/[0-9]/*/g ?
— datdinhquoc

1
इसका असर दूसरे नंबर पर भी पड़ेगा। मान लें कि set_load -pin_load 0.5 [get_ports {data [25]}] तो यह 0.5 से * में भी बदल जाएगा।
— Vishal Patel

जब आपने कोशिश की थी कि यह वर्ग वर्ग कोष्ठक से बच नहीं रहा है जब आप नहीं चाहते कि उनका कोई विशेष अर्थ हो।
— simlev

जवाबों:


0

यह चौकोर कोष्ठक के अंदर सभी अंकों को तारांकन के लिए प्रतिस्थापित करेगा:

sed 's/\[[0-9]*\]/\[*\]/g'

1
मेरा मानना ​​है कि प्रतिस्थापन अनुभाग में वर्ग कोष्ठक से बचने की कोई आवश्यकता नहीं है, क्योंकि उनका वहां कोई विशेष अर्थ नहीं है।
— simlev

0

उत्तर: यहां बताया गया है कि आप अपनी SED अभिव्यक्ति को कैसे संशोधित कर सकते हैं ( sed 's/[[0-9][0-9]]/[*]/g' ):

sed -E 's/\[[0-9]{1,3}]/[*]/g'

स्पष्टीकरण:

  • प्रारंभिक वर्ग कोष्ठक से बचें [ बैकस्लैश के साथ \ क्योंकि आप चाहते हैं कि अभिव्यक्ति शाब्दिक रूप से मेल खाए [ वर्ग कोष्ठक के बीच आपके द्वारा लिखे गए किसी भी पात्र के विपरीत। बाद के वर्ग कोष्ठक से बचने की आवश्यकता नहीं है।

  • निर्दिष्ट करें कि आप कितने अंकों का मिलान करना चाहते हैं: {1,3} किसी भी प्राकृतिक संख्या से शुरू होता है 1 और तक 3। इस काम के लिए, आपको सक्षम करने की आवश्यकता है विस्तारित नियमित अभिव्यक्ति उसके साथ -E स्विच (इसके बिना आप संतुष्ट हो सकते हैं sed 's/\[[0-9]*]/[*]/g' )। यह आपके में उपलब्ध होना चाहिए sed तब से, के अनुसार man sed:

    -E विकल्प को GNU sed द्वारा वर्षों से समर्थित किया गया है, और अब इसे POSIX में शामिल किया गया है।


यहाँ पर्ल विकल्प:

perl -pe 's/data\[\K\d+(?=])/*/g'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.