में प्लेसहोल्डर्स/वेरिएबल्स का उपयोग करके मैं मिलान किए गए परिणाम का एक विशिष्ट भाग बाद में प्रतिस्थापन के लिए उपयोग किए जाने वाले चर के रूप में संग्रहीत करना चाहता हूं। मैं हाथ से पहले आवश्यक चर खोजने के बजाय इसे एक लाइनर में रखना चाहता हूं।एक sed कमांड
जब अपाचे को विन्यस्त, और उपयोग mod_rewrite, आप पैटर्न के विशिष्ट भागों specificy कर सकते हैं, चर के रूप में प्रयोग की जाने वाली इस तरह:
RewriteRule ^www.example.com/page/(.*)$ http://www.example.com/page.php?page=$1 [R=301,L]
पैटर्न मैच का हिस्सा है कि कोष्ठक के अंदर निहित है $ 1 के रूप में संग्रहीत किया जाता है बाद में उपयोग के लिए। तो अगर यूआरएल www.example.com/page/home
था, तो इसे www.example.com/page.php?page=home
के साथ बदल दिया जाएगा। तो मैच का "घर" भाग $ 1 में सहेजा गया था क्योंकि यह ब्रांड्स के अंदर पैटर्न का हिस्सा था।
मुझे sed
कमांड के साथ इस कार्यक्षमता की तरह कुछ चाहिए, मुझे प्रत्येक तालिका तालिका से पहले मौजूद कमांड मौजूद होने पर ड्रॉप तालिका जोड़ने के लिए स्वचालित रूप से एसक्यूएल डंप फ़ाइल में कई स्ट्रिंग्स को प्रतिस्थापित करने की आवश्यकता है, लेकिन मुझे टेबल नाम जानने की आवश्यकता है
...
CREATE TABLE `orders`
...
मैं की तरह कुछ चलाने की आवश्यकता:
: के परिणाम प्राप्त करने केcat dump.sql | sed "s/CREATE TABLE `(.*)`/DROP TABLE IF EXISTS $1\N CREATE TABLE `$1`/g"
इस है, तो डंप फ़ाइल की तरह कुछ है या नहीं
...
DROP TABLE IF EXISTS `orders`
CREATE TABLE `orders`
...
मैं sed
कमांड में mod_rewrite वाक्यविन्यास का उपयोग कर रहा हूं जो कि मैं जो करने का प्रयास कर रहा हूं उसके तार्किक उदाहरण के रूप में।
कोई सुझाव?
इस स्पष्टीकरण के लिए धन्यवाद, यह पूरी तरह से मेरे प्रश्न का उत्तर है। –