सवाल एक सादा पाठ में एक समृद्ध पाठ फ़ाइल स्वरूपण प्रोफ़ाइल लागू करना


मेरे पास है एक .rtf , निम्नलिखित प्रारूप में ~ 70 पृष्ठ शब्दकोश पांडुलिपि हाथ में:

enter image description here

मुझे उन पंक्तियों को बदलने के लिए कहा गया है:

enter image description here

फ़ॉर्मेटिंग के बिना यह करना एक आसान बात है, लेकिन मैं यह नहीं समझ सका कि इच्छित स्वरूपण में इसे कैसे किया जाए।

मैंने libreoffice की खोज की कोशिश की और नियमित अभिव्यक्तियों के साथ टूल को प्रतिस्थापित करने के लिए पहले सभी प्रविष्टियों के लिए पहले ब्रेसिज़ को बोल्ड में डाल दिया। और फिर मैंने ब्रेसिज़ को बंद करने के लिए यह कोशिश की:

खोजें: \[([:alpha:]{1:20})

बदलने के:&] 

यह ठीक काम करता है लेकिन यह इस तरह बनाता है:

enter image description here

यानी यह पिछले के प्रारूप (खोज कमांड द्वारा चुने गए पहले अक्षर) भाग की प्रतिलिपि बनाता है और मैं जिस चीज को प्रतिस्थापित करना चुनता हूं उस पर लागू होता है।

मैंने भी कोशिश करने की कोशिश की sed प्रतिस्थापन के लिए लेकिन स्पष्ट रूप से यह प्रारूपित के साथ काम नहीं करता है .rtf बुनियादी वाक्यविन्यास का उपयोग करते समय फ़ाइलें। यह खुलता है .rtf एक सादे पाठ के रूप में, इसलिए स्वरूपण और फ़ाइल जानकारी के लिए सभी कोड एक पाठ के रूप में प्रकट होते हैं, इसलिए मेरा:

sed "s/ / [/1" dictionary.rtf > dictionary1.rtf और ब्रेसिज़ बंद करने के लिए इसके समकक्ष काम नहीं करेंगे, क्योंकि यह स्वरूपण कोड में स्पेस + ओपन ब्रेस उपस्थिति के साथ रिक्त स्थान बदलने की भी कोशिश करता है।


तो, संक्षेप में, मेरे पास है .rtf वांछित स्वरूपण में फ़ाइल, और दूसरी ओर, मेरे पास ब्रेसिज़ द्वारा संलग्न उच्चारण भाग के साथ एक सादा पाठ है, द्वारा उत्पादित sed शब्दकोश के सादे पाठ संस्करण से आउटपुट।

मैं सोच रहा हूं कि एक रूपांतरित करने का कोई तरीका है या नहीं .rtf फ़ाइल जिसमें ऊपर वर्णित प्रारूप में, केवल सादा पाठ शामिल है।

किसी भी मदद की सराहना की जाएगी, जब तक यह वांछित नौकरी करता है। यदि आप मेरी libreoffice खोज और प्रतिस्थापित कर सकते हैं, तो यह भी करेगा।

धन्यवाद!


2
2017-08-27 22:53


मूल


प्रयत्न sed -r 's/^([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)[[:blank:]]+(.*)/\1 [ \2 ] \3/' file.rtf - heemayl
@heemayl नहीं, जिसने फ़ाइल को बिल्कुल नहीं बदला :( - etka
कृप्या संपादित करें आपका प्रश्न और उस से कुछ वास्तविक चक और वांछित आउटपुट जोड़ें। आपके द्वारा चुने गए चक ने ठीक काम किया है sed एक मेरे लिए। - heemayl
@heemayl हाँ, माफ करना, मुझे नहीं लगता था कि कोई इस तरह के बिंदु के जवाब को सीधे दे देगा। सम्पादन संपन्न, संपादन संपन्न किया। - etka
आरटीएफ सिर्फ सादा पाठ फ़ाइल है जिसमें कई नियंत्रण अनुक्रम हैं। आपके पास पहले से ही सही स्थानों पर नियंत्रण अनुक्रम हैं (क्योंकि पाठ बिल्कुल सही जगहों पर रंग बदलता है जहां आप अन्य सामान रखना चाहते हैं)। आप मार्कअप के रूप में इन नियंत्रण अनुक्रमों का उपयोग कर सकते हैं। Sed के साथ, आप "[" से पहले violet मार्कअप जोड़ते हैं। टू-ब्लैक मार्कअप से पहले, आपको टू-नारंगी मार्कअप और "]" जोड़ना होगा। यह इस तथ्य से थोड़ा जटिल है कि आरटीएफ अनुक्रम बहुत जटिल हैं और उन पात्रों का उपयोग करें जिन्हें sed में भागने की आवश्यकता है। - ludvik02


जवाब: