एक स्ट्रिंग के कुछ हिस्सों को रेक्स के साथ sed में ले जाना


1

मैं बदलने की कोशिश कर रहा हूँ,

input.output.roomMAX[0]        to   input.output.room[0].MAX
input.output.roomMAX[1]        to   input.output.room[1].MAX
input.output.roomMIN[variable] to   input.output.room[variables].MIN

मैं चीजों से मिलान करने और प्रतिस्थापन में उन्हें संदर्भित करने के तरीके पर अटक रहा हूं। मैं क्या तर्क दूं sed?

जवाबों:


2
sed 's/room\(MAX\|MIN\)\(\[[^]]*\]\)/room\2.\1/' inputfile

यदि आप "चर" को "चर" में बदलना चाहते हैं, तो एक और निर्देश जोड़ें:

sed 's/room\(MAX\|MIN\)\(\[[^]]*\]\)/room\2.\1/;s/variable/variables/' inputfile

या: sed -r 's/room(MIN|MAX)(\[.*\])/room\2.\1/' कम भागने के साथ।
slhck

@ स्लैक: यदि आपका संस्करण sed इसका समर्थन करता है (या -E ओएस एक्स के लिए)।
Dennis Williamson

हाँ। कुछ बिंदु पर मुझे बीएसडी का उपयोग नहीं करने की आदत है sed अब और उपयोग कर रहा है gsedकम से कम OS X पर।
slhck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.