मैं (पूर्वगामी नियम उच्च प्राथमिकता है)sed का उपयोग करने के लिए कैसे बैकस्लैश
\right) -> remain unchanged
\right) -> remain unchanged
\right] -> remain unchanged
\right ] -> remain unchanged
\right} -> remain unchanged
\right } -> remain unchanged
\ri) -> \right)
\ri -> \rightarrow
\right -> \rightarrow
दूसरे शब्दों में, निम्नलिखित पैटर्न के लिए की जगह करना चाहते हैं के साथ स्ट्रिंग पैटर्न की जगह अगर कोई कोष्ठकों ब्रैकेट या ब्रेस है, मैं \ right, अगर कुछ और होना चाहते हैं, तो इसे \ rightarrow द्वारा प्रतिस्थापित किया जाना चाहिए। संक्षेप में, मैं बहुत सारे शॉर्टेंडेड Google डॉक समीकरणों को उचित लाटेक्स प्रारूप में बदलने की कोशिश कर रहा था। मैं निम्नलिखित के साथ आया था
sed -i 's/\\ri\([^g]\)/\\right\1/g' $tempfile1 #first step substitution
sed -i 's/\\right\([^])}>|a]\)/\\rightarrow\1/g' $tempfile1
sed -i 's/\\right \([^])}>|a]\)/\\rightarrow \1/g' $tempfile1
यह ठीक काम करता है सिवाय इसके कि यह \ right \ in \ rightarrow \ जैसा अपेक्षित नहीं है। मेरा परीक्षण इनपुट tempfile1 निम्नलिखित
\ri\right\right \right)\right]\right }\right)\ri \right ]\righta \al \\
\rightarrow\right\rightarrow \right)\right]\right }\right)\rightarrow \right ]\rightarrow \alpha \\
यह देखते हुए कि \ सही \ हिस्सा सही ढंग से नहीं किया गया था में यह जाता है। तब मैं पहले से निम्न पंक्ति कहा, यह सोच कर कि यह स्पष्ट लेने चलेगा कि कौन से छोड़ दिया गया था, हालांकि, यह अपेक्षा के अनुरूप काम नहीं कर रहा है और अब मैं वास्तव में भ्रमित कर रहा हूँ ...
sed -i 's/\\right\\/\\rightarrow\\/g' $tempfile1 #why this does not work
धन्यवाद एक बहुत!
यह मेरे लिए काम किया। – aragaer
निश्चित रूप से आप अपनी 3 स्क्रिप्ट को 'sed -i -e' का उपयोग करके एक में जोड़ सकते हैं ... pattern1 ... '-e' ... pattern2 ... '-e' ... pattern3 ... '.. .'। किलोबाइट आकार की फाइलों के लिए, तीन पास शायद अधिक मायने रखते हैं, लेकिन बहु-मेगाबाइट फ़ाइलों और बड़े के लिए, एक पास बनाम तीन एक बड़ा अंतर बना सकता है। –
मैं देखता हूं, thx। मेरे लिए सामान्य फ़ाइल आकार 50K (सामान्य लाटेक्स दस्तावेज़) से कम है, लेकिन मेरे पास 30+ पैटर्न (उदाहरण के लिए \ al \ beta \ del \ b \ i \ sig) प्रतिस्थापित करने के लिए है और समय में संख्या बढ़ जाती है। (धन्यवाद इसके समीकरण संपादक और उनके हालिया "सुधार" के लिए Google डॉक) – gamebm