bash करन अगर नंबर हमेशा एक समान नहीं होता है तो कई फाइलों में संख्या बढ़ाई जा सकती है?




मोबाइल नंबर को प्राइवेट नंबर बनाने के लिए तरीका (2)

awk उपयोग करें - यह इसके लिए बिल्कुल सही उपकरण है:

awk '/Release: [0-9]+/ { printf "Release: %d\n", $2+1 }' < $file > $file.new

अनुवाद:

  • उन पंक्तियों के लिए खोज करें जिनमें "रिलीज़:" उसके बाद एक या अधिक अंक होते हैं।
  • प्रिंट "रिलीज:" एक नंबर और एक नई लाइन के बाद संख्या इनपुट लाइन (अंक), प्लस 1 में दूसरा शब्द है

मेरे पास इस पंक्ति में कई फाइलें हैं

Release: X

मैं सभी फाइलों में एक्स बढ़ाना चाहता हूं

यदि एक्स फाइलों के बीच स्थिर था, तो मैं फ़ाइलों के चारों ओर पाशन और स्क्रिप्ट पाता है ($ 1 में पूर्व रिलीज़ नंबर और $ 2 का नया वाला, अर्थात् $ 1 + 1):

sed 's/Release: '$1'/Release: '$2'/' <$file >$file.new

अब, अगर रिलीज नंबर फाइलों के बीच अलग है तो मुझे कैसे करना चाहिए?

क्या यह sed के साथ संभव है?

क्या मुझे दूसरे उपकरण का उपयोग करना चाहिए?


यह पर्ल एक-लाइनर ए वीकी स्क्रिप्ट के समान होगी, लेकिन बाकी फाइल को या रिलीज़ वाले सभी पंक्तियों को नष्ट नहीं करेगा।

 perl -pe "$_=~s/Release: (\d+)/'Release: '. ($1+1)/e;" < file > file.new




sed