हाँ। आप उस w / tr
को ASCII लोकेल में कर सकते हैं (जो कि, GNU के लिए tr
, वैसे भी, केवल इसका एक प्रकार है) । आप POSIX कक्षाओं का उपयोग कर सकते हैं, या आप प्रत्येक वर्ण के बाइट मानों को अष्टक संख्या द्वारा संदर्भित कर सकते हैं। आप उनके परिवर्तनों को श्रेणियों में विभाजित कर सकते हैं, साथ ही साथ।
LC_ALL=C tr '[:upper:]\0-\101\133-140\173-\377' '[:lower:][\n*]' <input
उपरोक्त आदेश सभी अपरकेस वर्णों को लोअरकेस में बदल देगा, लोअरकेस वर्णों को पूरी तरह से अनदेखा कर देगा, और अन्य सभी वर्णों को नई सुर्खियों में बदल देगा। बेशक, फिर आप एक टन खाली लाइनों के साथ हवा करते हैं। tr
-s
Queeze दोहराता स्विच उस मामले में उपयोगी हो सकता है, लेकिन अगर आप के साथ इसका इस्तेमाल [:upper:]
करने के लिए [:lower:]
तो परिवर्तन आप अच्छी तरह से अपरकेस वर्णों फैलाएंगे हवा। इस तरह यह अभी भी एक दूसरे फिल्टर की तरह की आवश्यकता है ...
LC... tr ... | tr -s \\n
... या ...
LC... tr ... | grep .
... और इसलिए यह हवाओं को करने की तुलना में बहुत कम सुविधाजनक है ...
LC_ALL=C tr -sc '[:alpha:]' \\n <input | tr '[:upper:]' '[:lower:]'
... जो -c
एक ही नई पंक्ति में अनुक्रम द्वारा वर्णमाला वर्णों के बहिष्कार को निचोड़ता है, फिर पाइप के दूसरी तरफ ऊपरी से निचले परिवर्तन करता है।
यह कहना नहीं है कि उस प्रकृति की श्रेणियाँ उपयोगी नहीं हैं। सामान की तरह:
tr '\0-\377' '[1*25][2*25][3*25][4*25][5*25][6*25][7*25][8*25][9*25][0*]' </dev/random
... यह बहुत उपयोगी हो सकता है क्योंकि यह इनपुट बाइट्स को उनके मूल्यों के प्रसार स्पेक्ट्रम पर सभी अंकों में परिवर्तित करता है। बर्बाद नहीं, नहीं चाहिए, तुम्हें पता है।
परिवर्तन करने के लिए एक और तरीका शामिल हो सकता है dd
।
tr '\0-\377' '[A*64][B*64][C*64][D*64]' </dev/urandom |
dd bs=32 cbs=8 conv=unblock,lcase count=1
dadbbdbd
ddaaddab
ddbadbaa
bdbdcadd
क्योंकि एक ही समय में dd
दोनों unblock
और lcase
रूपांतरण कर सकते हैं , यह भी संभव है कि इसे बंद करने के लिए बहुत से कार्य पारित किए जाएं। लेकिन यह वास्तव में केवल तभी उपयोगी हो सकता है जब आप प्रति शब्द बाइट्स की संख्या का सटीक अनुमान लगा सकें - या कम से कम एक पूर्वानुमान बाइट की गिनती के लिए पहले से ही रिक्त स्थान के साथ प्रत्येक शब्द को पैड कर सकते हैं, क्योंकि unblock
प्रत्येक ब्लॉक के अंत में अनुगामी रिक्त स्थान खाती है।