Triming the data in a file.


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Triming the data in a file.
# 1  
Old 07-10-2019
Triming the data in a file.

Hi, I have a big csv file with below data.

file:
Code:
La Cage Aux Folles (Widescreen)
Famous Mystics and Psychics
A Passion for Planning Financials  Operations  Marketing  Management  and Ethics
Precious Moments Holy Bible New King James Version Precious Angels Edition  Blue
Practical Recording 2 Pro Tools
Generals at Rest The Grave Sites of the 425 Official Confederate Generals
Getting the Most Out of Teaching With Newspapers Learning-Rich Lessons
Strategies  and Activities That Use the Power of Newspapers to Teach Current
Events and Build Skills in Reading  Writing  Math
Box Of The Blues (4CD)
The McDonaldization Thesis Explorations and Extensions
Film and Literature An Introduction and Reader
The Ecology of Eden
Jaroslav Rossler
The Complete Idiots Guide to Italian Level 1
Fresh Eggs
Energizer Lithium-Ion Digital Camera Battery ER-D210
Leaders That Last How Convenant Friendships Can Help Pastors Thrive
Krishnas Cosmos The Creativity of an Artist  Sculptor  Teacher
Numerical Simulation in Tunneling
Creating Sanctuary A New Approach to Gardening in the Washington Metropolitan
Area
Thelonious Monk Orchestra At Town Hall (Remaster)  The


I need to trim the data file like it should contain three or less i.e 1 or 2 or 3 words in a line. The three words can be the fisrt three words of the line or the last three words of the line. it should be random way some lines should consist first three words and some should consist last three words.
example as shown as below.

trimmed file having three words from every line (randomly first three words or last three words):
Code:
La Cage Aux 
Mystics and Psychics
Management  and Ethics
Precious Moments Holy
Recording 2 Pro Tools
Official Confederate Generals
Learning-Rich Lessons
to Teach Current
Reading  Writing  Math
Box Of The Blues
The McDonaldization Thesis
Film and Literature
Ecology of Eden
Jaroslav Rossler
The Complete Idiots
Fresh Eggs
Energizer Lithium-Ion
Help Pastors Thrive
Artist  Sculptor  Teacher
Numerical Simulation
the Washington Metropolitan
Area
Thelonious Monk Orchestra

can someone help me on this.
# 2  
Old 07-10-2019
Any attempts / ideas / thoughts from your side?
# 3  
Old 07-10-2019
When you address RudiC, and your approach to this, you should also include a reason for the request.
Your request does not seem to have any logical reason, and thus gives the impression that it is some kind of homework/classwork. There is a special process for assisting with school-related requests.
This User Gave Thanks to joeyg For This Post:
# 4  
Old 07-11-2019
Hello joeyg ,
this is not a homework/classwork.this is for testing purpose for our application and to search the key words. so i need in that format.

Hello Rudic,
i had thought like a script reading the every line count if is greater than 9 then i will print last three words with "awk -F, '{print $7,$8,$9}' " line and if it its less than 7 then i will print "awk -F, '{print $5,$6,$7}' " and if it is less than or equal to three then i will take first three like
"awk -F, '{print $5,$6,$7}' OFS=' ' "
so i am working on this long script
i thought of getting your help to achieve it in any other short and simple way.

my script:
Code:
IFS=$'\n'; for line in $(cat "sdg-catalog-00000001"); do

wordcount=$(echo $line|wc -w);
echo word count=$wordcount
if [ $wordcount -le "5" ]
then
   echo "word count is  less than 5 so taking first 3 words"
   echo $line|awk -F " " '{print $1,$2,$3}' >> new.csv
elif [ $wordcount -gt "5" ]  && [ $wordcount -le "8" ]
then
   echo "word count is greater than 5  and less than 8 so taking 4,5,6 words"
   echo $line|awk -F " " '{print $4,$5,$6}' >> new.csv
elif [ $wordcount -ge "8" ]
then
   echo "word count is greater than 8 so taking 6,7,8 words"
   echo $line|awk -F " " '{print $6,$7,$8}' >> new.csv
else
fi
done


Last edited by Raghuram717; 07-11-2019 at 04:07 AM..
# 5  
Old 07-11-2019
The conditions you apply in post #4 severely deviate from your statement "t should be random way"in post #1. Which is the valid one, now?


For the random request, try
Code:
awk '
NF < 4  ||
int(10 * rand())%2      {print $1, $2, $3
                         next
                        }
                        {print $(NF-2), $(NF-1), $NF
                        }
' file

and reprt back.
# 6  
Old 07-11-2019
Even it can be the middle three words too.But the three words should be in consecutive.
can u help me with that.
the above script u provided is working for only for first three words of the line or the last three words of the line.
# 7  
Old 07-11-2019
Quote:
Originally Posted by Raghuram717
...
The three words can be the fisrt three words of the line or the last three words of the line.


Moving targets don't really help.
Targets defined imprecisely don't really help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace data of a file with data from another file using shell scripting.

Dears, I'm new to shell scripting and i was wondering if you can help me with following matter. I have a file containing 400,000 records. The file contains two columns like: 00611291,0270404000005453 25262597,1580401000016155 25779812,1700403000001786 00388934,1200408000000880... (1 Reply)
Discussion started by: paniklas
1 Replies

2. Shell Programming and Scripting

Extract header data from one file and combine it with data from another file

Hi, Great minds, I have some files, in fact header files, of CTD profiler, I tried a lot C programming, could not get output as I was expected, because my programming skills are very poor, finally, joined unix forum with the hope that, I may get what I want, from you people, Here I have attached... (17 Replies)
Discussion started by: nex_asp
17 Replies

3. Shell Programming and Scripting

Generate tabular data based on a column value from an existing data file

Hi, I have a data file with : 01/28/2012,1,1,98995 01/28/2012,1,2,7195 01/29/2012,1,1,98995 01/29/2012,1,2,7195 01/30/2012,1,1,98896 01/30/2012,1,2,7083 01/31/2012,1,1,98896 01/31/2012,1,2,7083 02/01/2012,1,1,98896 02/01/2012,1,2,7083 02/02/2012,1,1,98899 02/02/2012,1,2,7083 I... (1 Reply)
Discussion started by: himanish
1 Replies

4. UNIX for Dummies Questions & Answers

Mapping a data in a file and delete line in source file if data does not exist.

Hi Guys, Please help me with my problem here: I have a source file: 1212 23232 343434 ASAS1 4 3212 23232 343434 ASAS2 4 3234 23232 343434 QWQW1 4 1134 23232 343434 QWQW2 4 3212 23232 343434 QWQW3 4 and a mapping... (4 Replies)
Discussion started by: kokoro
4 Replies

5. Shell Programming and Scripting

Triming spaces few columns

File contains 10 columns,i want trim the 2,4,10 columns using single unix command. Please suggest me how to do? Thanks (21 Replies)
Discussion started by: bmk
21 Replies

6. Shell Programming and Scripting

Putting two perl scripts together... triming whitespace off of recently parsed file

Thanks to people's help, I have composed a single line within a .sh script that Ports a file into a csv: perl -p -i -e... (5 Replies)
Discussion started by: Astrocloud
5 Replies

7. Shell Programming and Scripting

Triming a string

Hi i have an input " load /appss/asdfas/... I want to take the string present between first / / i.e appss Input is "load /appss/asdfas/..." Expected output is appss Thanks in advance Ananth (9 Replies)
Discussion started by: Ananthdoss
9 Replies

8. UNIX for Dummies Questions & Answers

How to get data only inside polygon created by points which is part of whole data from file?

hiii, Help me out..i have a huge set of data stored in a file.This file has has 2 columns which is latitude & longitude of a region. Now i have a program which asks for the number of points & based on this number it asks the user to enter that latitude & longitude values which are in the same... (7 Replies)
Discussion started by: reva
7 Replies

9. Shell Programming and Scripting

Find and replace data in text file with data in same file

OK I will do my best to explain what I need help with. I am trying to format an ldif file so I can import it into Oracle oid. I need the file to look like this example. Keep in mind there are 3000 of these in the file. changetype: modify replace: userpassword dn:... (0 Replies)
Discussion started by: timothyha22
0 Replies

10. Shell Programming and Scripting

Triming spaces for any variable

Hi, I want to trim the spaces on left side of the variable value. For eg: if it is 4 spaces followed by value, All the spaces on the left should be supressed. Easy but want it quickly. Regards, Shiv@jad (6 Replies)
Discussion started by: Shiv@jad
6 Replies
Login or Register to Ask a Question