I have a complicated situational find and replace that I wrote in bash because I didn't know how to do everything in awk. The code works but is very slow, as expected.
To create my modified file, I am looping through an array that was populated earlier and making some replacements at stored positions.
Code:
# loop through stored record
for ((j=0; j <= $i ; j++)) ; do
# for the first line, add the new firstline value
if [[ $j == "0" ]]; then
echo $new_firstline >> $output_file
# when the replace line is found, use the substitute value
elif [[ $j == "$replace_line" ]]; then
echo $new_name >> $output_file
# output all other lines as normal
else
echo ${line_array[$j]} >> $output_file
fi
done
This is obviously going to be very slow because of all the file operations. My intent was to write the new file to an array and then print the array at the end.
Code:
# store the record
while read line
do
# store line in array
line_array[$i]="$line"
# increment counter
i=$((i+1))
done < $input_file
...
other code to test some things and make new variables
...
# declare an array to store the output
declare -a modified_file
# loop through stored file
for ((j=0; j <= $i ; j++)) ; do
# for the first line, add the new firstline value to the output array
if [[ $j == "0" ]]; then
modified_file=("${modified_file[@]}" "$new_firstline")
# when the replace line is found, add the substitute value to the output array
elif [[ $j == "$replace_line" ]]; then
modified_file=("${modified_file[@]}" "$new_name")
# output all other lines as normal
else
modified_file=("${modified_file[@]}" "${line_array[$j]}")
fi
done
# print the modified file array to the output file
echo ${modified_file[@]} >> $output_file
This seems like it should be right but all I get when I print modified_file[@] is a series of integers, like it is printing the array index.
What am I doing wrong here? Let me know if I didn't provide enough information.
Thanks,
LMHmedchem
Last edited by LMHmedchem; 02-08-2018 at 01:58 PM..
why do inode indices starts from 1 unlike array indexes which starts from 0
its a question from "the design of unix operating system" of maurice j bach
id be glad if i get to know the answer quickly
:) (0 Replies)
brothers why inode index starts from 1 unlike array inex which starts from 0
its a question from the design of unix operating system of maurice j.bach
i need to know the answer urgently...someone help please (1 Reply)
I come across the problems when assigning the array in the script below . How to use the array with the 'string index' correctly ? When I assign a new string index , the array elements that are previously assigned are all changed .:eek::eek::eek:
$ array=211
$ echo ${array}
211
$... (4 Replies)
hi folks
i am facing problom while trying to access sql variable as array index ina unix shell script....script goes as below..
#!/bin/ksh
MAX=3
for elem in alpha beeta gaama
do
arr=$elem
((x=x+1))
Done
SQL_SERVER='servername'
/apps/sun5/utils/sqsh -S $SQL_SERVER -U user -P pwd -b -h... (1 Reply)
Hi,
I'm just trying to use a dynamic index for some array elements that I'm accessing within a loop. Specifically, I want to access an array at variable position $counter and then also at location $counter + 1 and $counter + 2 (the second and third array positions after it) but I keep getting... (0 Replies)
Hi,
I am using KSH shell to do some programming.
I want to search array and print index value of the array.
Example..
nodeval4workflow="DESCRIPTION ="" ISENABLED ="YES" ISVALID ="YES" NAME="TESTVALIDATION"
set -A strwfVar $nodeval4workflow
strwfVar=DESCRIPTION=""... (1 Reply)
Hi,
I am new to perl and I have the following query please help here.
I have following array variables declaration
@pld1 = qw(00 01 02 03 04 05);
@pld2 = qw(10 11 12 13 14 15);
for(my $k=1;$k<=2;$k++)
{
//I want here to use @pld1 if $k is 1
// and @pld2 if $k is 2. How to do... (3 Replies)
I am trying to reformat the table by filling any missing rows. The final table will have consecutive IDs in the first column. My problem is the index of the associate array in the awk script.
infile:
S01 36407 53706 88540
S02 69343 87098 87316
S03 50133 59721 107923... (4 Replies)
I am trying to assign indexes to an associative array in a for loop but I have to use an eval command to make it work, this doesn't seem correct I don't have to do this with regular arrays
For example, the following assignment fails without the eval command:
#! /bin/bash
read -d "\0" -a... (19 Replies)
Discussion started by: Riker1204
19 Replies
LEARN ABOUT DEBIAN
gchem3d
GCHEM3D(1) gnome-chemistry-utils GCHEM3D(1)NAME
gchem3d - a small chemical viewer application
SYNOPSIS
gchem3d [OPTION(S)...] [FILE...]
DESCRIPTION
gchem3d is a small chemical viewer application, which can show several chemical file formats.
OPTIONS
The following options are accepted:
-b COLOR, --bgcolor=COLOR
Use the given color as background color. COLOR can be one of "black" (default), "white", "#rrggbb" (don't forget to escape the "#"
character in the shell).
-d MODEL, --display3d=MODEL
Choose how molecules are displayed. MODEL can be one of "BallnStick" (default), "SpaceFill".
-?, --help
Show application help options.
--help-all, --help-*
Print all or just a group of help options. These options are not documented here. Instead see gtk-options(7) and gnome-options(7).
-v, --version
Print gchem3d version information.
SEE ALSO gnome-options(7), gtk-options(7)AUTHORS
Jean Brefort <jean.brefort@normalesup.org>
Program author.
Daniel Leidert <daniel.leidert@wgdd.de>
Manpage author.
COPYRIGHT
Copyright (C) 2002-2007 Jean Brefort
Copyright (C) 2004-2007 Daniel Leidert
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any
later version published by the Free Software Foundation.
gcu 0.12 $Date: 2009-03-19 10:53:47 +0100 (jeu. 19 mars 2009) $ GCHEM3D(1)