ในระบบ GNU คุณจะต้องใช้sedหรือคล้ายกันหากโลแคลของคุณใช้อักขระหลายไบต์( ตาม jimmij แนะนำ )เนื่องจาก GNU trสามารถอ้างอิงอักขระได้ต่อไบต์เท่านั้น ในโลแคล ASCII คุณสามารถลบรายการซ้ำทั้งหมดที่มีtr :
LC_ALL=C tr -s '\0-\255' <input
ดังนั้น...
echo Thhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\0-\255'
... พิมพ์ ...
This is my name
คุณสามารถเลือกโดยการอ้างอิงเป้าหมายของคุณตามช่วง:
echo TThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\101-\132'
...หรือ...
echo TTTThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '[:upper:]'
... ที่ทำงานออกมาเป็นสิ่งเดียวกันและที่ทั้งสองพิมพ์:
Thhiisss iisss mmyyy nameeee
... หรือการใช้งาน[:punct:], [:digit:], [:lower:], [:alpha:]หรือสิ่งที่คุณต้องการ คุณสามารถคัดค้านการเลือกด้วย / -c...
echo 'TTTThhiisss iisss mmyyy nameeee' |
LC_ALL=C tr -cs '[:upper:]'
... พิมพ์ ...
TTTThis is my name