Centos/लिनक्स बैशsed: बड़े पैमाने पर यादृच्छिक अन्य पाठ
बीच अवधियों को परिवर्तित मैं जो हर जगह में पाठ के बहुत सारे और युग संख्या है एक लॉग फ़ाइल, है। मैं उन सभी युगों को प्रतिस्थापित करना चाहता हूं जो वे पठनीय दिनांक/समय में हैं।
मैं इसे sed के माध्यम से करना चाहता हूं, क्योंकि यह नौकरी के लिए उपकरण लगता है। मैं रूपांतरण के लिए वास्तव में परिवर्तनीय (युग) को पार्स करने के लिए sed के प्रतिस्थापन भाग को प्रतीत नहीं कर सकता।
क्या मैं के साथ काम कर रहा हूँ का नमूना ...
echo "Some stuff 1346474454 And not working" \
| sed 's/1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/'"`bpdbm -ctime \&`"'/g'
Some stuff 0 = Thu Jan 1 01:00:00 1970 And not working
bpdbm हिस्सा उपयोगी तारीख में एक आपूर्ति युग चर परिवर्तित कर देंगे। इस तरह ..
bpdbm -ctime 1346474454
1346474454 = Sat Sep 1 05:40:54 2012
तो मैं "पाया" आइटम को कमांड में पार्स करने के लिए कैसे प्राप्त करूं। जैसा कि मुझे लगता है कि यह काम करने में सक्षम नहीं है।
कोई भी मदद सुंदर होगी। यदि कोई और तरीका है, तो यह अच्छा होगा ... लेकिन मुझे संदेह है कि sed जल्दी होगा।
आपके समय के लिए धन्यवाद!
इसे 'set -vx' के साथ चलाएं यह देखने के लिए कि यह क्यों काम नहीं कर रहा है।सेड को 'और' के मूल्य को "जानता है" से पहले डेटा की रेखा को संसाधित करना पड़ता है, सीएमडी-सबटाइंडेशन को आखिरी चीज़ तक देरी होनी चाहिए, लेकिन संभवतः यह पहली चीज हो रही है। आप इसे आसानी से अजीब में कर सकते हैं। Sed में आपका विश्वास छू रहा है ;-)। सौभाग्य! – shellter
खैर, हाँ ... कोशिश करना और जहां संभव हो वहां sed और awk रखना। कल सैड के साथ एक और खेल होगा, मैंने एक sed-based संकल्प – user1649704