I am trying to concatenate the contents (a block of code) of a file called query.sql
in a README.md
document, that already contains some text. However, I would also like this block of code to be preceded by a heading "Model answer".
In other words, if my README.md
file was currently structured as
# Title
Some text here.
the new file should look like
# Title
Some text here.
## Model answer
```sql
Contents of query.sql
```
The subtitle ## Model answer
is currently not in any file, so the process should involve something like
cat "## Model answer\n\n```sql\n" query.sql "\n```" >> README.md
but cat
only works with sets of files, not files and strings. How could I achieve the desired result in BASH?
First you can printf
or echo -e
the required text and then cat
the file query.sql
after that. You can use &&
or ;
between the commands . If &&
is used then the second command will be executed only if the first command was successfull. ;
is treated as a command separator
{ printf "## Model answer\n\n \`\`\`sql" && cat query.sql && printf "\n\`\`\`"; } >> README.md
or
{ echo -e "## Model answer\n\n '''" ; cat query.sql ; echo -e "''' /n"; } >> README.md