4

I have a file which contains only one line

$> cat file.txt
apple,orange,cat,dog

I need to append two String to it and assign it to a variable, one in front and another in the end, so that it becomes:

var=key,apple,orange,cat,dog,ending

so that I can use the $var somewhere else...

May I know how could I do that in bash script? Or any linux command can do that? Thanks.

2 Answers 2

8

One way would be this:

var="key,$(<file.txt),ending"
2

One possible solution is:

var=$(echo -n 'key,' && cat file.txt | tr '\n' ',' && echo 'ending')
  • $(...) gets the output string of the commands in ...
  • echo -n prints the following string without a trailing newline
  • cat prints the file's contents and tr '\n' ',' replaces the trailing newline with a comma
  • echo prints the following string with newline (which is not really important)
2
  • It doesn't work... would you please advise if I've done something wrong? As the follow: var=$(echo -n 'KEY,' && cat header-cp-match-src-file.csv | tr '\n' ',' && echo 'ID_BB_COMPANY,BB_CONAME,ID_BB_PARENT_CO,LONG_PARENT_COMP_NAME,COMPANY_CORP_TICKER,AVG_SIM_SCORE')
    – FGH
    Oct 25, 2013 at 21:21
  • How should I know if you are doing something wrong, if you do not even post the contents of $var. I suggest you first try with your sample file and specifications from your question and test, if this gives the desired result. Then try with your original data and strings.
    – Tim
    Oct 25, 2013 at 21:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .