Splitting a file based on negative and positive numbers


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Splitting a file based on negative and positive numbers
# 1  
Old 04-30-2019
Splitting a file based on negative and positive numbers

I have a file that is pipe delimited and in Column F they have number values, both positive and negative. I need to take the one file I am starting with and split it into two separate files based on negative and positive numbers. What is the command to do so? And then I need to also transfer each of those files with 2 separate names to an SFTP server. I was trying something with an awk command, but I was told that using the split command might make this easier. Below is what I started with. Any help would be appreciated.

Code:
awk '{if($9~/\-/){print $0>"file1.txt"}else{print $0>"file2.txt"}}


Last edited by RavinderSingh13; 05-01-2019 at 01:15 AM..
# 2  
Old 04-30-2019
Column F is field number 6 not 9.
# 3  
Old 05-01-2019
Code:
awk -F "[ |]" -v v="F" '
NR==1           {for(i=1; i <= NF; i++) if (v == $i) break
                 print > "file1.txt"}
$i ~ "-"        {print > "file1.txt"; next}
                {print > "file2.txt"}
                ' file

# 4  
Old 05-01-2019
Set a field separator!
Pipe delimited: -F"|" or BEGIN {FS="|"}
Then your initial code will work.
The previous post sets a pipe or space as the FS. (And it determines a column named F in the first line.)
This User Gave Thanks to MadeInGermany For This Post:
# 5  
Old 05-01-2019
Some input and desired output samples might help.
I don't see the split nor the csplit tool to distribute lines to different target files based on a single field's contents. Try instead
Code:
awk -F"|" '{print > ($6<0?"NEG.TXT":"POS.TXT")}' file

If you don't want the sixth field to be the selector but the non-predetermined field labeled "F", use nezabudka's proposal to determine the relevant field number. Make sure there's only one field labeled "F"!

Last edited by RudiC; 05-01-2019 at 04:17 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Converting negative number to positive in a file

Hi ALL, I am having semi column separated file as below. I am having negative values for the records starting with 11095. How can I convert that positive number I tried this below seems not working sed 's/ \(*\)$/ -\1/;t;s/\(.*\)-/\1/ myfile myfile... (6 Replies)
Discussion started by: arunkumar_mca
6 Replies

2. Shell Programming and Scripting

Splitting a file based on positive and negative numbers

Dear All, I have to split a tab delimited file in two files based on the presence of a positive or negative in column number 9 , for example file: A 1 5 erg + 6766 0.9889 0.9817 9.01882 erg inside upstream B 1 8 erg2 + 6766 0.9889 0.9817 -9.22 erg2 inside... (3 Replies)
Discussion started by: paolo.kunder
3 Replies

3. Shell Programming and Scripting

Splitting file based on line numbers

Hello friends, Is there any way to split file from n to n+6 into 1 file and (n+7) to (n+16) into other file etc. f.e I have source pipe delimated file with 20 lines and i need to split 1-6 in file1 and 7-16 in file2 and 17-20 in file 3 I need to split into fixed number of file like 4 files... (2 Replies)
Discussion started by: Rizzu155
2 Replies

4. Shell Programming and Scripting

Find Where Values Change From Positive To Negative and viceversa

Hi all, I have a file that looks like shown below. I want to find places where the value in column 2 change from negative to positive and vice versa and return the value on column 1 at that point. I wonder if this is possible in shell script or awk .. please help! Here is the original data ... (6 Replies)
Discussion started by: malandisa
6 Replies

5. Shell Programming and Scripting

addition of both positive and negative numbers

Let, I have three numbers +00123.25 -00256.54 +00489.23 I need to sum up all those three numbers, after storing them in three variables (say var1, var2, var3). I used both expr and BC, but they didn't work for me. But, I am not able to sum up them, as I don't have any idea how to... (13 Replies)
Discussion started by: mady135
13 Replies

6. Shell Programming and Scripting

Sorting positive and negative values

Hello, I have a list like this : 1 2 -4 0 -3 -7 5 6 etc. Is there a way to remove all the positive values and print only the negative values, without using grep, sed or awk? Thanks, Prasanna (4 Replies)
Discussion started by: prasanna1157
4 Replies

7. Shell Programming and Scripting

Finding the most positive and negative value and defining its position

Hi, I have a file that looks like this: Jake 2 3 4 6 4 3 -2 -1 Jerry 1 2 3 2 1 7 -6 -1 Timmy -1 -4 -5 -8 9 3 1 I want to find the most positive and negative value for each row and also define its position (based on column #) So the output would look... (7 Replies)
Discussion started by: gisele_l
7 Replies

8. Shell Programming and Scripting

Perl output with negative and positive numbers

Hello, For my weather station I have made a little perl script to put the data into cacti. The next problem I have. I can only get positive numbers or negative numbers. What do I do: Though a shell scrip I call the perl script. Shell script: #!/bin/sh cat data.txt | stats.pl Perl... (4 Replies)
Discussion started by: rbl-blacklight
4 Replies

9. Shell Programming and Scripting

Help in adding positive & negative values in a column

Hi Gurus, In my file I have an amount field from position 74 to 87, which contains values starting with '+' as well as '-'. I want to add all positive values in a varible called "CREDIT" and all negative values in a variable "DEBIT". I know, we can use grep to identify values with positive and... (4 Replies)
Discussion started by: berlin_germany
4 Replies
Login or Register to Ask a Question