ASCII वर्ण 0 से 177 (अष्ट) तक की सीमा के वर्ण हैं ।
किसी फ़ाइल में इस श्रेणी के बाहर के वर्णों को हटाने के लिए, उपयोग करें
LC_ALL=C tr -dc '\0-\177' <file >newfile
trआदेश एक उपयोगिता है कि एकल पात्रों पर काम करता है , या तो, अन्य एकल वर्ण (लिप्यंतरण) के साथ उन्हें प्रतिस्थापन उन्हें हटाने, या एक ही चरित्र में एक ही चरित्र का रन संपीड़ित।
ऊपर दिए गए कमांड से fileसंशोधित सामग्री को पढ़ा और लिखा जाएगा newfile। यूटिलिटी डिलीट करेक्टर (उन्हें ट्रांसफर करने के बजाए) -dकरने का विकल्प दिया गया trहै, और -cयह दिए गए अंतराल (अंदर के बजाय) के बाहर के कैरेक्टर पर विचार करता है।
LC_ALL=Cयह सुनिश्चित करता है कि प्रत्येक बाइट मान एक मान्य वर्ण बनाता है। इसके बिना, कुछ trकार्यान्वयन निरस्त हो जाएंगे यदि उन्हें बाइट्स के अनुक्रम मिले जो कि लोकेल के चरित्र एन्कोडिंग में मान्य वर्ण नहीं बनाते हैं।
संशोधित फ़ाइल के साथ मूल फ़ाइल को बदलने के लिए, उपयोग करें
LC_ALL=C tr -dc '\0-\177' <file >newfile &&
mv newfile file
यह trसफलतापूर्वक पूरी हो जाने के बाद पुरानी फ़ाइल के नाम पर नई फ़ाइल का नाम बदल देता है । यदि trसफलतापूर्वक पूरा नहीं होता है, तो या तो यह मूल फ़ाइल को नहीं पढ़ सकता है या नई फ़ाइल को नहीं लिख सकता है, मूल फ़ाइल को अपरिवर्तित छोड़ दिया जाएगा।
वैकल्पिक रूप से, मूल फ़ाइल के मेटा डेटा (अनुमतियाँ आदि) का अधिक से अधिक संरक्षण करना, उपयोग करना
cp file tmpfile &&
LC_ALL=C tr -dc '\0-\177' <tmpfile >file &&
rm tmpfile