Use the first position of a value in a field to replace the field

Hello,
Use the first position of a field and replace the field with this value.

This is a comma separated file.  In the third field replace the word dog with d

xxxx,yyyyy,dog,zzzzz

xxxx,yyyyy,d,zzzzz

would i use cut to to this?
bjeAsked:
Who is Participating?
 
woolmilkporcCommented:
Use "awk":

awk -F, 'BEGIN {OFS=","} {$3=substr($3,1,1);print}' inputfile.csv > newfile.csv

or "sed", if you prefer:

sed -i.bak 's/\(^[^,]*,[^,]*,\)\([^,]\)[^,]*\(.*$\)/\1\2\3/' inputfile.csv

The above "sed" command will create an unchanged backup file "inputfile.csv.bak" and then change "inputfile.csv" in place.

"awk" (first solution above) cannot change files "in place", so we must create a new outputfile.

"cut" cannot do what you desire.
0
 
bjeAuthor Commented:
Thank you
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.