क्या हेडर सेक्शन के बिना $xmllint --format file का उपयोग करने का कोई तरीका है?

<?xml version="1.0"?>
<Tag>
  <Sub>A</Sub>
</Tag>

मुझे पता है कि आप --c14n का उपयोग कर सकते हैं लेकिन यह --format के साथ अच्छी तरह से मेल नहीं खाता है। जैसे $xmllint --format --c14n file बस उत्पादन करेगा:

<Tag><Sub>A</Sub></Tag>

वांछित परिणाम

<Tag>
  <Sub>A</Sub>
</Tag>
1
Overseer10 9 मई 2016, 17:26

1 उत्तर

सबसे बढ़िया उत्तर

आप पहली पंक्ति को हटाने के लिए sed का उपयोग कर सकते हैं। यह नहीं कहना कि यह सबसे अच्छा है, लेकिन यह आपको आगे ले जाएगा:

xmllint --format <file> | sed 1d

बेहतर होगा कि आप xmllint पर एक मिलियन कॉल से बचने का प्रयास करें। और सेड या पूंछ।

मुझे यकीन नहीं है कि xmllint इनप्लेस एडिट का समर्थन करता है या नहीं। लेकिन अगर ऐसा होता है तो ऐसा कुछ संभव हो सकता है:

xargs < list_of_files_to_change.txt xmllint --inplace --format
xargs < list_of_files_to_change.txt sed -i 1d
2
Andreas Louv 9 मई 2016, 17:52
मुझे शायद इस अनुरोध में जोड़ा जाना चाहिए था कि स्क्रिप्ट लगभग 1M व्यक्तिगत फ़ाइलों के लिए चलेगी। क्या sed टेल -n +2 से अधिक इष्टतम होगा?. क्षमा करें अगर यह एक बेकार सवाल है।
 – 
Overseer10
9 मई 2016, 17:43
मुझे यकीन नहीं है, मैंने अधिक जानकारी के साथ उत्तर अपडेट किया है।
 – 
Andreas Louv
9 मई 2016, 17:53
मैक पर मेरे माप से sed 1d tail -n +2 से 10-15x तेज है
 – 
Hugues M.
30 जिंदा 2020, 17:00