bash - Remove slash from end of chained grep and awk output, echo to console -


यहां मेरी इनपुट फाइल है:

  / home / sites / default / files / maple % 20board02% 2019% 2013% 20.pdf /home/sites/default/files/paintgrade/side-view.jpg /home/sites/default/files/paintgrade/steps_2.jpg / घर / साइटों / डिफ़ॉल्ट / फ़ाइलें / सामने % 20sill-photo1.gif /home/sites/default/files/Rear%20steps%20Feb.%209.2011.pdf  

यहां मेरा grep / awk कथन है:

  grep / files / 404s.txt | उस वक्तव्य से आउटपुट यह है:  
  मेपल% 20बोर्ड02% 2019% 2013% 20 पीडीएफ / पेंटग्रेड / साइड-व्यू। जेपीजी पेंटग्रेड / चरण_2.जेपीपी फ्रंट% 20 एसिल-फोटोआईजीफ़ / रियर% 20स्टेप्स% 20 एफबी।% 209.2011.pdf /  

(देखें कभी-कभी ऐसा नहीं होता.कभी कभी कोई उपनिर्देशिका नहीं होती है और मेरा अजीब बयान "/" कम-से-कम छापता है।)

मैंने एक और पोस्ट को देखा कि कैसे एक को हटाने के लिए स्लैश का अनुसरण करना, लेकिन मुझे यकीन नहीं है कि इसे कैसे लागू किया जाए। पोस्ट ने कहा कि $ {1% /} आपको एक स्ट्रिंग बिना अनुगामी स्लैश प्रदान करेगा। पोस्ट है सबसे ज्यादा मतदान का उत्तर है: लक्ष्य = $ {1% /}

मुझे अपने grep / awk कथन में कुछ जोड़ने के लिए आउटपुट होना चाहिए:

<पूर्व> मेपल% 20 बोर्ड02% 2019% 2013% 20.pdf पेंटग्रेड / साइड-व्यू.जेपीजी पेंटग्रेड / चरण_2.जेपीपी फ्रंट% 20 एसिल-फोटो 21.gif रीयर% 20स्टेप्स% 20 एफएबी।% 209.2011.pdf

आउटपुट को ऊपर बताए जाने के लिए मैं अपने मूल विवरण में क्या जोड़ सकता हूं? शायद कट मदद कर सकता है या मेरे awk को अनुक्रमित "/" नहीं प्रिंट करने के लिए समायोजित किया जा सकता है?

बस उस उपसर्ग को हटाने के लिए ऐसा कुछ काम करेगा (स्ट्रिंग का विकल्प और फिर डिफ़ॉल्ट प्रिंट कार्रवाई प्राप्त करने के लिए सत्य-वाई पैटर्न का उपयोग करें)।

  awk '{उप ("^ / home / sites / default / files /", "")} 7'  

यदि आपको एक्स फ़ील्ड की शुरुआत से निकालना है फिर कट का उपयोग करते हुए सामान्यतः awk से अधिक सरल होता है।

  cut -d / -f6-  

Comments