• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 214
  • Last Modified:

How to write this shell script

Hi experts,

I have many files in following format

22  cpv 88  99  cpithisis
33  cpi 90  22  hecpvto
11  cpi ee  pp  timecpi
10  cpv 3e  79  shecpvcomes


The 2nd column is either "cpv" or "cpi". Each line has 5 columns and columns are "\t" seperated. Now I want to use shell script to split those lines of "cpv" to one file and "cpi" to another file.

I use following script but it is not correct. Can anybody help me to correct it?

Thanks so much.

cat *cpv_cpi*.txt | awk '{if ($2=="cpv") print $0}' | gzip > aa.txt

Open in new window

0
davidw88
Asked:
davidw88
1 Solution
 
cyberstalkerCommented:
The command you posted should work to put all the lines with cpv as second argument in a zipped file.


# put all lines with cpv in a gzipped file called aa.txt.gz and cpi into bb.txt.gz
cat *cpv_cpi*.txt | awk '{if ($2=="cpv") print $0}' | gzip > aa.txt.gz
cat *cpv_cpi*.txt | awk '{if ($2=="cpi") print $0}' | gzip > bb.txt.gz
 
# do the same, but now uncompressed
cat *cpv_cpi*.txt | awk '{if ($2=="cpv") print $0}' > aa.txt
cat *cpv_cpi*.txt | awk '{if ($2=="cpi") print $0}' > bb.txt

Open in new window

0
 
davidw88Author Commented:
Great. Thanks cyberstalker!
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.

Join & Write a Comment

Featured Post

Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now