Sponsored Content
Top Forums UNIX for Dummies Questions & Answers If statement between different file's arrays Post 302919106 by bakunin on Sunday 28th of September 2014 04:38:02 AM
Old 09-28-2014
Quote:
Originally Posted by saleheen
1. Yes, the bottom 2 layers are the atoms whose z coordinates start with 0.***** & 2.*****. There are two more layer of atoms above these.
OK, step by step! Try this one (replace "<t>" by literal tab characters):
Code:
sed '/Pt[ <t>]*\([0-9]\.[0-9]\{14\}[ <t>]*\)\{2\}[0-2]/ s/$/  bottom!/' /path/to/input > /path/to/output

This should mark the bottom lines with the word "bottom!". I find it easier to verify something i see therefore i would first modify the lines, verify that there are no false positives, false negatives, etc., and only then proceed. If everything is indeed correct replace the substitution with a simple delete-command:

Code:
sed '/Pt[ <t>]*\([0-9]\.[0-9]\{14\}[ <t>]*\)\{2\}[0-2]/d' /path/to/input > /path/to/output

You surely want to know how this works: we start with the innermost part:

Code:
[0-9]\.[0-9]\{14\}[ <t>]*

This matches a digit, followed by a ".", followed by another 14 digits, followed by any number of whitespace (i do not know if your numbers are separated by blanks or tabs). This matches one cooordinate.

Code:
Pt[ <t>]*\(<coordinate>\)\{2\}[0-2]

This matches a "Pt", followed by whitespace, followed by two such coordinates, followed by a digit between 0 and 2, hence a 0,1 or 2 in the first digit of the z-coordinate. This should identify the lines of the bottom layers.

We use this regexp in a "one-address-command" of sed. The command (in our case a substution or a deletion) is executed only in a line which fits onto the regexp:

Code:
/^a/ s/x/y/g

Change all "x" to "y", but only in lines which begin with "a".

If this does what you need we proceed to the next part of your problem.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading in data sets into arrays from an input file.

Hye all, I would like some help with reading in a file in which the data is seperated by commas. for instance: input.dat: 1,2,34,/test for the above case, the fn. will store the values into an array -> data as follows: data = 1 data = 2 data = 34 data = /test I am trying to write... (5 Replies)
Discussion started by: sidamin810
5 Replies

2. Shell Programming and Scripting

Arrays & File Reading

Ok; here is the code INCREMENT=0 #Final Count MATCH=0 #Treated as a Boolean declare -a LINEFOUR #Declared Array for FILE in $DIR; do # DIR was declared earlier test -f $FILE && ( TEMP=(sed -n '4p' $FILE) #How do I assign the fourth line of the file to TEMP? This doesn't... (1 Reply)
Discussion started by: Asylus
1 Replies

3. Shell Programming and Scripting

How to load different type of data in a file to two arrays

Hi, I have tried to find some sort of previous similar thread on this but not quite close to what I want to achieve. Basically I have two class of data in my file..e.g 1,1,1,1,1,2,yes 1,2,3,4,5,5,yes 2,3,4,5,5,5,no 1,2,3,4,4,2,no 1,1,3,4,5,2,no I wanted to read the "yes" entry to an... (5 Replies)
Discussion started by: ahjiefreak
5 Replies

4. Shell Programming and Scripting

Struggling with arrays and delimited file

Hi, I am trying to use arrays in my script but can not seem to get it to work. I have a file called sections, this contains headers from a tripwire log file, separated by "@" but could be "," if easier The headers will be used to cut sections from the log file into another to be mailed. ... (5 Replies)
Discussion started by: pobman
5 Replies

5. Shell Programming and Scripting

Reading a .dat file in to 2 different arrays

hi all, i have a data file that contains 2 columns, names and numbers. i need to read names in to a an array call names and numbers in to an array call numbers. i also have # and blank lines in my dat file and i need to skip those when i read the dat file. how do i do this? btw, my column 1 and... (3 Replies)
Discussion started by: usustarr
3 Replies

6. Shell Programming and Scripting

Saving file content in arrays using AWK

Hi, im new to shell scripting. i have a query for which i have searched your forums but coulndt get what i need. i have a file that has two records of exactly the same length and format and they are comma seperated. i need to save the first and the second columns of the input file to 2 different... (11 Replies)
Discussion started by: atikan
11 Replies

7. UNIX for Dummies Questions & Answers

File Field Replacement, Assigning Fields to Variables, Lists/Arrays?

Okay, I've made threads on extracting fields and comparing strings in separate files in .csv's. I've written the following code with intentions of learning more. I just want this one question answered: How can I assign fields from a file(comma separated) to variables? My goal is to check... (0 Replies)
Discussion started by: chickeneaterguy
0 Replies

8. Programming

question about int arrays and file pointer arrays

if i declare both but don't input any variables what values will the int array and file pointer array have on default, and if i want to reset any of the elements of both arrays to default, should i just set it to 0 or NULL or what? (1 Reply)
Discussion started by: omega666
1 Replies

9. UNIX for Dummies Questions & Answers

Using associative arrays with an if statement

I have this piece of code. The first if statement is not working, however the second if statement is working fine. I have set a value for Srcs to be file.srcs and want to print it. If no value for Rcvs is set, I get the print statement correctly hasValue="file.srcs" if ${hasValue}; then ... (0 Replies)
Discussion started by: kristinu
0 Replies

10. Shell Programming and Scripting

About arrays in file 1 matching with file 2

i have two files say a and b a has these lines 1 20 30 40 2 30 40 50 3 25 35 45 5 20 50 20 and b has these lines 20 30 30 40 25 35 20 50 the script reads FILENAME ( "a" ) { rec1=$2; rec2=$2; } (4 Replies)
Discussion started by: paresh n doshi
4 Replies
All times are GMT -4. The time now is 11:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy