How do I remove all (text, special characters, white spaces, tabs etc) from my text file (input) except numbers (digits) using sed command?
You need to use simple regular expression to remove all but numbers from the input. For example, 's/^[0-9]*//g' will remove all but numbers from the input. Type the following command:
$ echo 'This is a test. 123456789 and 2nd number is 34. 3M3i4x5' | sed 's/[^0-9]*//g'
You can remove all except digits from a text file:
sed 's/[^0-9]*//g' input.txt sed 's/[^0-9]*//g' input.txt > output.txt sed -i 's/[^0-9]*//g' input.txt
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -


{ 2 comments… read them below or add one }
Good but if I want to delete only numbers (randomly).
Input 1:
I am 89 years old.
Output 1:
I am years old.
And
Input 2:
I am 2012 years old.
Output 2:
I am 9 years old.
Thanks
I have figured it out. I just removed ^. But if the word contains like 82age or age10 than how it would be possible to remove only numbers.
Thanks