How to concat String, File Contents, and String in bash script?

11,855

Solution 1

One way would be this:

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

Solution 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)
Share:
11,855

Related videos on Youtube

FGH
Author by

FGH

Updated on September 18, 2022

Comments

  • FGH
    FGH over 1 year

    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.

  • FGH
    FGH over 10 years
    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_NA‌​ME,COMPANY_CORP_TICK‌​ER,AVG_SIM_SCORE')
  • Tim
    Tim over 10 years
    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.