Visit Our UNIX and Linux User Community


Cut


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Cut
# 1  
Old 09-28-2001
Cut

Sorry, I accidentally posted this in the advance forum first...

Hi, I'd like to use cut to remove the last field from a record

the original record is comma delimited with null as the 19th field. Example: field18,,field20

if I use
cut -d, -f1-19 file
the record ends with
field18,

but I'd like field19 to be shown also, like
field18,,

is there something I am missing, or should I just append a comma to the end of the record after removing field20 (the last field)

Thanks in advance,
kristy
# 2  
Old 09-28-2001
you should look into a regular exprestion. to take what you want.

The cut utility would work great. if you wanted the extra null field but you dont. so i would suggest the following.

Code:
cut -d, -f1-19 file |sed 's/,$/,,/'

the "$" means end of line. so it will search for ",," @ the end of each line givein to it and remove the 2 commas and replace it w/ 1 comma.

Last edited by Optimus_P; 09-28-2001 at 07:09 PM..
# 3  
Old 10-01-2001
Lightbulb

Thanks, Optimus. This replaces the single comma with a double at the end of each record, which is exactly what I was looking for. However, a coworker tells me that we should be using awk:

awk -F, '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19}' file > newfile

now, this doesn't make sense to me because it is unwieldy and it prints white space between fields, instead of retaining its comma delimited structure. Even if we manipulated this to suit our needs, is there a clear advantage of using awk over cut piped to sed?
# 4  
Old 10-01-2001
the only differance you are looking at is speed, and w/ your awk statement you are specifing exactly which fields you want to keep and not keep. you can do w/ the same thing w/ cut saying which fields you dont want.

Personaly i would take my method vs the current awk statement due to not to be mean but its an eye soar. When i first started doing scripting i did it the long way (that awk statement) now i find i am able ot do the exact same thing but shorter and quicker, and much faster to read thru for errors. IMHO
# 5  
Old 10-01-2001
MySQL

Thanks again. I was thinking the same thing.
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #219
Difficulty: Easy
When a data packet comes in to a port on a router, the router reads the network address information in the packet footer to determine the ultimate destination.
True or False?

3 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

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

3. 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

Featured Tech Videos