मेरे पास /etc/foo.txt पर एक साधारण फ़ाइल है। फ़ाइल है निम्नलिखित:उत्तरदायी lineinfile डुप्लिकेट लाइन
#bar
मैं ऊपर लाइन uncomment के लिए निम्न ansible प्लेबुक कार्य है: जब मैं पहली बार ansible-प्लेबुक चलाने
- name: test lineinfile
lineinfile: backup=yes state=present dest=/etc/foo.txt
regexp='^#bar'
line='bar'
, लाइन uncommented हो जाता है और/etc/
bar
हालांकि, अगर मैं ansible-प्लेबुक फिर से चलाने के लिए, मैं निम्नलिखित मिल: foo.txt अब निम्नलिखित शामिल
012,bar
bar
अगर मैं यह एक बार फिर से चलाने के लिए, तो /etc/foo.txt फ़ाइल इस तरह दिखेगा:
bar
bar
bar
कैसे लाइनों के इस दोहराव से बचने के लिए? मैं बस '#bar' को अपनाना चाहता हूं और इसके साथ किया जाना चाहता हूं।
लेकिन यह हमेशा फ़ाइल को बदलता है। मेरी समझ यह थी कि रेगेक्सपी मिलान होने पर लाइन केवल डाली जाती है (फ़ाइल संशोधित)। – jdevora
जब तक फ़ाइल हर बार एक जैसी होती है, तो कार्य बेवकूफ है। यही बात मायने रखती है। – joemaller
मुझे मुश्किल तरीका पता चला कि यदि आप इसके साथ संयोजन में 'insertafter' का उपयोग करते हैं, तो आप फिर से डुप्लिकेट लाइनों के साथ समाप्त होते हैं। 'insertafter' इस सूत्र को तोड़ता है। –