I'm trying to make a bash shell script that will allow a user to modify another file based on input they give. Maybe someone can see what I'm doing wrong here. I'm still pretty new at this...
Let's say my temp file contains this:
Code:
0 1 HELLO 3 4
And here's the code:
Code:
old=(0 1 3 4)
new=(zero one two three four five)
cat temp | for i in ${old[@]}; do sed "s=$i=${new[$i]}=g"; let i++; done
The output would then be redirected to a new file. The problem is, that only the first sed is ever applied. For instance, if I change the last command to allow it to echo $i:
Code:
cat temp | for i in ${old[@]}; do echo $i; sed "s=$i=${new[$i]}=g"; let i++; done
then the output looks like this:
Code:
0
zero 1 HELLO 3 4
1
3
4
The reason I'm trying to do a for/while loop instead of simply piping to sed each time, is that the 'new' array is populated by user input, and can have as many or few elements as the user desires. Any help would be appreciated.
Hi all,
I have a data file formatted as in the following line:
Achadd 0:35 1:35 2:35 3:40 4:40 5:40
I need the minutes converted to seconds; I wrote a script, min2sec, to do so for one datapoint. I was hoping to use sed as in the following code to call this script and... (4 Replies)
I have a line that works for static filename
cat /directorypath/filename | sed '//d;//d' > filename
This approach when used in a script works well.
Then i need a list of filenames to give this line.
I can get the list into a file by filelist1='ls -m'
then use filelist2=${filelist1##ls... (4 Replies)
Hello All,
I'm trying to write a script that will perform a dynamic match (of a dynamic variable) and set a variable to have the resulting (match) value.
The idea is that the environment variable to check ($1) and the regular expression to use ($2) are given as parameters.
For example,... (5 Replies)
Hi,
I am trying to get lines between the last occurrences of two patterns. I have files that have several occurrences of “Standard” and “Visual”. I will like to get the lines between “Standard” and “Visual” but I only want to retain only the last one e.g.
Standard
Some words
Some words
Some... (4 Replies)
Hello Is there a way to calculate how many times a particular symbol appeared in a string before a particular word.
Desktop/Myfiles/pet/dog/puppy
So, I want to count number of occurence of"/" in this directory before the word dog lets say.
Cheers,
Bob (3 Replies)
Hello,
Is it possible to embed the command output to the replacement of sed? Say I need to replace all the blank lines with random strings:
input:
ACCTTCGTCTTCTGG
GCTTGAGATGGTCCA
GCAGGGCTAGTGACG
GACGAGTCTCTTGAC
ACCAAATCAAAGATCand output is:
>26aa36d934d44f06d15b3aab4645a602 $(date |... (9 Replies)
Sed replace using same pattern repeating multiple times in a line
I have text like below in a file:
I am trying to replace the above line to following
How can I acheive this?
I am able to do it if the occurrence is for 1 time:
But If I try like below
I am getting like this:
I have to... (4 Replies)
Pattern:
Mary walks at the park every day with her children
sed 's/$/ /'
will make it add 1 space at the end (trailing)
I want to add X ($VARIABLE) number of spaces (which comes from RANDOM)
i.e.
VARIABLE='14'
then it will do:
sed 's/$/ /'
= 14 spaces added at the... (10 Replies)
MKTEMP(1) BSD General Commands Manual MKTEMP(1)NAME
mktemp -- make temporary file name (unique)
SYNOPSIS
mktemp [-d] [-q] [-u] template
DESCRIPTION
The mktemp utility takes the given file name template and overwrites a portion of it to create a file name. This file name is unique and
suitable for use by the application. The template may be any file name with at least 6 of 'Xs' appended to it, for example /tmp/temp.XXXXXX.
The trailing 'Xs' are replaced with the current process number and/or a unique letter combination. The number of unique file names mktemp
can return depends on the number of 'Xs' provided; six 'Xs' will result in mktemp testing roughly 26 ** 6 combinations.
If mktemp can successfully generate a unique file name, the file is created with mode 0600 (unless the -u flag is given) and the filename is
printed to standard output.
OPTIONS
The available options are as follows:
-d Make a directory instead of a file.
-q Fail silently if an error occurs. This is useful if a script does not want error output to go to standard error.
-u Operate in ``unsafe'' mode. The temp file will be unlinked before mktemp exits. This is slightly better than mktemp(3) but still
introduces a race condition. Use of this option is not encouraged.
RETURN VALUES
The mktemp utility exits with a value of 0 on success, and 1 on failure.
EXAMPLES
The following sh(1) fragment illustrates a simple use of mktemp where the script should quit if it cannot get a safe temporary file.
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
echo "program output" >> $TMPFILE
In this case, we want the script to catch the error itself.
TMPFILE=`mktemp -q /tmp/$0.XXXXXX`
if [ $? -ne 0 ]; then
echo "$0: Can't create temp file, exiting..."
exit 1
fi
Note that one can also check to see that $TMPFILE is zero length instead of checking $?. This would allow the check to be done later one in
the script (since $? would get clobbered by the next shell command).
SEE ALSO mkstemp(3), mktemp(3)HISTORY
The mktemp utility appeared in OpenBSD.
BSD November, 20, 1996 BSD