How to cut only letters?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to cut only letters?
# 1  
Old 09-09-2013
How to cut only letters?

I was wondering how I could cut only the names of items from the following list:

spoons50
cups29
forks50
plates29

I used "man cut" and thought -c would help, but the items have different character lengths. Please note that there is no space between the item and number (so I can't use -f/-d). I'm hoping to using only the cut command. Thank you everyone for your help.
# 2  
Old 09-09-2013
This removes ALL letters
Code:
tr -d '[:alpha:]' < infile > newfile

This User Gave Thanks to jim mcnamara For This Post:
# 3  
Old 09-09-2013
Let's say you have the word list in file x.x, then...
Code:
cat x.x | tr -d  '/a-z,A-Z/'

This User Gave Thanks to blackrageous For This Post:
# 4  
Old 09-09-2013
Quote:
Originally Posted by blackrageous
Let's say you have the word list in file x.x, then...
Code:
cat x.x | tr -d  '/a-z,A-Z/'

Unless your intention is to delete letters, commas, and forward slashes, your tr command is flawed. It almost looks like its argument is intended to be a regular expression.

Unrelatedly, there's no need to use cat. Shell redirection will do the job just fine.

Regards,
Alister
# 5  
Old 09-09-2013
Plus, is "cut only letters" the real intention? Isn't it only number that are wanted?

Code:
$ cat x
 echo aBc123De | tr -d '[:alpha:]' 

$ cat <(cat x) | tr -d '[:alpha:]'
  123 |  - '[::]' 

# cat <(cat <(cat x)) | tr -d '[a-zA-Z]'
  123 |  - '::'

Code:
$ grep -o "[0-9]\+" x
123

# 6  
Old 09-09-2013
Only tr -d '[a-z][A-Z]' and tr -d '[:alpha:]' seem correct.
Indeed tr -d '[a-zA-Z]' either deletes [ and ] or gives an error (Solaris /usr/xpg4/bin/tr).
# 7  
Old 09-09-2013
Now that I think about it, I wasn't really clear with my question. I was hoping to cut the items into a new file. Something like cut "just letters"> newfile

It seems like the answers will all remove the letters (or in ths case, spoons, cups,etc.)and will leave just the numbers. However, I want the opposite.

---------- Post updated at 02:30 PM ---------- Previous update was at 02:25 PM ----------

Actually the full line is something like this:

Spoons50Joe
Cups29John
Forks50Jack
Plates29Sam

I want to cut the first part (spoons, cups, forks, plates) and create a new file containing a list of those items only. I don't want to remove all the letters (just the names at the end) and since there is no space, I can't use -f -d
 
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using :<<cut / cut to comment out block of bash script

I am using : << cut / cut to comment out block of code. Works fine on few lines of script, then it gives me this cryptic error when I try to comment out about 80 lines. The "warning " is at last line of script. done < results 169 echo "END read all positioning parameters" 170... (8 Replies)
Discussion started by: annacreek
8 Replies

2. UNIX for Beginners Questions & Answers

Random letters

Hi there, first of all this is not homework...this is a new type of exercise for practicing vocabulary with my students. I have a file consisting of two columns, separated by a tab, each line consisting of a word and its definition, separated by a line break. What i need is to replace a... (15 Replies)
Discussion started by: eldeingles
15 Replies

3. UNIX for Beginners Questions & Answers

Cut command: can't make it cut fields

I'm a complete beginner in UNIX (and not a computer science student either), just undergoing a tutoring course. Trying to replicate the instructions on my own I directed output of the ls listing command (lists all files of my home directory ) to My_dir.tsv file (see the screenshot) to make use of... (9 Replies)
Discussion started by: scrutinizerix
9 Replies

4. Shell Programming and Scripting

Cut Command error cut: Bad range

Hi Can anyone what I am doing wrong while using cut command. for f in *.log do logfilename=$f Log "Log file Name: $logfilename" logfile1=`basename $logfilename .log` flength=${#logfile1} Log "file length $flength" from_length=$(($flength - 15)) Log "from... (2 Replies)
Discussion started by: dgmm
2 Replies

5. UNIX for Advanced & Expert Users

Add letters

I want to add letters A,B,C,… in front of every line of input while printing them out using PERL. eg A file is parsed as a cmd line arg and its context will be displayed as A line1... B line 2.. I tried this..but I want better and perfect solution! !perl -p my $counter; BEGIN { $counter... (4 Replies)
Discussion started by: aadi_uni
4 Replies

6. Shell Programming and Scripting

Need to strip few letters

Hey guys.. Can experts help me in achieving my purpose.. I have a file which contains email address of some 100 to 1000 domains, I need only the domain names.. Eg: abc@yahoo.com hd@gamil.com ed@hotmail.com The output should contain only Yahoo.com ... (5 Replies)
Discussion started by: achararun
5 Replies

7. Shell Programming and Scripting

trim letters

Hello, I have a list of words.. ranging from 4 to any characters long.. to not more than 20 though. How can I select only first seven letters of the list of words? example:- wwwwwwwwww eeeee wererreetf sdsarddrereewtewt sdsdsds sdsd ereetetttt ewtwertwrttrttrtrtwtrww I... (10 Replies)
Discussion started by: fed.linuxgossip
10 Replies

8. Shell Programming and Scripting

transposing letters

Hi, I've written a shell function in bash that reads letters into an array, then outputs them in one column with: for n in "${array}"; do echo $n done I was wondering if anyone knew how i would transpose the letters that are output by the for loop. Right now my output is: aabbcc... (4 Replies)
Discussion started by: myscsa2004
4 Replies
Login or Register to Ask a Question