What you're asking for should be possible with something like:
but since you haven't said what OS or shell you're using, we can only guess at the syntax your shell uses for command substitution.
This User Gave Thanks to Don Cragun For This Post:
Thank you for your help. Sorry, I am using CentOS release 6.6 server and the SHELL is 4.1.2(1)-release.
I am getting this error.
sed: -e expression #1, char 0: no previous regular expression
Here is a better exemple of the data:
Thanks very much for your attention!
Leandro
What do you mean, this is a better example of the data? Your script has three input files: list.txt, code_to_value.txt, and table_values.txt. Is this example of the data an example of one of these input files? Is it an example of the output you're trying to produce?
From your sample code, we can see that there are several things that could be made more efficient; but without knowing what you're trying to do, we can easily produce efficient code that doesn't do anything at all like what you want to do. Why do you have a loop, if you only want to keep the output produced by the last time through the loop?
Please help us help you. Show us sample data for each of your three input files. And, given those sample input files, what output are you trying to produce in test.output?
This User Gave Thanks to Don Cragun For This Post:
list.txt ## this is just a copy of first column of table_values.txt that I use on for loop table_values.txt ## Main table file code_to_value.txt ## Table for decoding table_values.txt (not in the same order of table_values.txt)
So, I want to go line per line of table_values.txt and replace 1, 2 or 3 buy the combination of alleles on code_to_value.txt.
The code is: 1 means 2 x first allele (second column), 2 means second column + third column, 3 means 2x third column (for each PT_*)
For exemple, for PT_0000000001 1 means AA, 2 AG and 3 GG. While for PT_0000000002 1 means GG, 2 GT and 3 TT.
So the final output I am trying is:
Thank you and sorry not be clear previously.
Since your code_to_value.txt file only contains 17 characters per line (not counting the terminating <newline> character), the cut calls creating the files value_1 and value_2 always produce empty files. So, even if the calls to paste work, the files code_1, code_2, and code_3 will also always be empty files.
When I run your code on OS X, I get errors from all of your invocations of paste instead of errors from sed. Bur rather than invoking cat nine times, cut, grep, and paste twelve times, and sed four times; the following script using a single invocation of awk seems to do what you said you wanted done (without using the file list.txt).
With your sample code_to_value.txt and table_values.txt input files, it produces the output:
rather than the output you said you wanted:
If I understand your requirements correctly, I believe the output shown in red in the output you said you were trying to get is inconsistent with your requirements.
Note that if you input files have Windows <carriage-return><line-feed> line terminators instead of UNIX and Linux <newline> line terminators, you'll need to change the line:
in the above script to something like:
to get rid of the extraneous <carriage-return> characters.
I hope this helps.
This User Gave Thanks to Don Cragun For This Post:
Greetings!
Have a quick question for the community today; this time looking at a nifty little sed puzzle ;)
Consider the following file content to be worked through:What needs to happen is theblock should be removed up to and including the following blank line, leavingI have bits and pieces... (8 Replies)
Hi,
In the following excerpt of shell script code: I could not understand the sed syntax. Could anyone shed some light on this?
configure_ssl()
{
jboss_conf_file=$1
echo "Configuring SSL for -" ${jboss_conf_file}
isSSLSetup=`echo cat ${jboss_conf_file} | grep <Connector... (2 Replies)
<tr><td width=10% style='width:5%;background:#F7F0D9;padding:0in 0in 0in 0in 0in'><center><b>Package</b></td><td width=10% valign=center style='width:5%;background:#F7F0D9;padding:0in 0in 0in 0in 0in'><center><b>JTs</b></td>
This is got to be simple. I run this on the above .html file:
sed... (8 Replies)
Thanks to this forum I have managed to work out a solution to my problem and actually understand most of it, but one thing is confusing me and I am sure someone here can explain.
I need to insert a piece of txt into a file. This txt is
awk '{ sub(/$/,"\r"); print }' $JCL_WBB50103_EFTOUT >... (2 Replies)
Hi,
Could anyone clearly explain me the below sed construct in detail to get to know what it actually does?
sed 's/\(* *\)//4'
echo 'test;10;20' | sed 's/*;\(*\)/\1/' (1 Reply)
I know that I want to entirely replace line 3 in my file filename.txt. I have tried all sorts of variations of
sed 3,3,c\replacement stuff\ filename.txt with no success.
about the only thing that causes any reaction is
sed 3,3c\\ filename.txt
but it just prints out the whole file.
... (13 Replies)
I always kind of wondered this but I have a variable that I want to use in a search and replace. Basically I want to search a file for the string in my variable and replace it with something fixed but I'm unsure of the variable rule in sed. Here's generally what I have:
sed 's/$name/newname/g'... (15 Replies)
I have one File named "txt_file"
# cat txt_file
<DBType>RT</DBType>
<AppType>RT</AppType>
--------------------------------------------------
I want replace "<AppType>RT</AppType>" to
<AppType>XY</AppType> in txt_file and output redirect to Newfile
... (2 Replies)
Hi,
How can i use sed command to modify a part of a variable containing "/" by another containing "/" like describe below:
VAR="/app/share/eai"
VAR1="/app/share"
VAR2="/data/test"
echo $VAR | sed 's/... ??? # using sed to replace $VAR1 in $VAR by $VAR2 ? (4 Replies)