I'm trying to write a function that redirects the contents of an
array to a file. The array contains the lines of a data file with
white space.
The function seems to preserve all white space when redirected
except that it seems to ignore newlines. As a consequence, the
elements of the array are appended one after the other.
use: array_save ARRAY $filename
NOTES:
Adding local IFS=$'\n' to the beginning of the function doesn't
seem to make any difference. I also tried printf in place of
echo but was not fully tested.
You could try with echo -e to have the newline recognized. Though it would be ok to see how you assign/fill this array. Anyway here is a general example:
It's a solution that's a combination of several posts from
the forum, the majority of which was suggested by a forum
member to another problem I had with arrays and I've used
the same general format and extended it to other functions.
After experimenting with other methods, it was the only
one that worked and the most elegant. After the array is
loaded, I have no further problems using or manipulating it.
The 'array_load' function populates the array with each
element within quotes. The 'array_save' function above,
outputs each element serially on one line.
However, I did manage a solution that works:
use: save_array ARRAY $filename
But it's not as elegant as the other functions. As the
function is part of a library that forms the foundation
of re-useable code concept, ideally it would have
been independent and used no named variables.
After weeks of searching the net and examining tens of
solutions, I do believe that the entire approach to arrays
in bash has been redefined due to your expertise and opened
up new possibilities for myself and other users. Dare I say
that it's even worthy of a third book!
I nearly had the solution myself, but used double quotes
around "string newline" instead of single quotes, should have
known better. Thanks also goes to nDuff at #bash for his/her
suggestions for using printf.
#!/bin/bash
X=(2H 4S 10D QC JD 9H 8S)
How do I unset the 10D from this array and save it to a file?
Please use CODE tags as required by forum rules! (5 Replies)
I am trying to select a file in bash and save it to a directory. The below does run but no selected file is saved. Thank you :).
bash
# select file
printf "please select a file to analyze with entered gene or genes \n"
select file in $(cd... (4 Replies)
I'm working on a script to execute a number of items. One being, editing particular files to add certain lines. I'm attempting to utilize sed, but, having issues when running from a bash script. Assistance is greatly appreciated.
My example:
sed -i '14 i\
# add these lines
add these lines to... (5 Replies)
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Hi there.
i have created a program that in the end it will give output like this
1 2 3 4 5
10 9 ... (1 Reply)
Hi there.
i have created a program that in the end it will give output like this
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
.............. 17
i wonder how to save the output into a single string and into a file.
i.e 1 10 11 12 9 2 3 8 13 14 7 4 5 6 15 17 (in this order,... (3 Replies)
Hi,
I'm trying to write a bash script that takes a file and passes each line from the file into an array with elements separated by column.
For example:
Sample file "file1.txt":
1 name1 a first
2 name2 b second
3 name3 c third
and have arrays such as:
line1 = ( "1" "name1" "a"... (3 Replies)
I have set up a bash script to run a long list of things that I need to time. I would like to redirect the output of time to a file. I have set it up like,
echo "Runtimes for servlet 4, 100K structures" > test_times.txt
echo "" >> test_times.txt
echo "runs where N=10" >> test_times.txt
echo... (7 Replies)
Hi all,
How to:
Run a bash script, display on the screen and save all information in a file including error information.
For example:
I have a bash script called test.sh
now I want to run the test.sh and display the output on the screen and save the output including error info to a file.
... (1 Reply)
i have a file,like
1 3
4 5
6 7
8 9
i want to save it into an array.
and then i want to get every element, because i want to use them to calculate. for example: i want to calculate 1 + 3.
but i cannot reach my goal.
open (FILE, "<", "number");
my @arr;
while (<FILE>){
chomp;... (1 Reply)