awk-Printing column value without new line and adding comma
awk 'BEGIN{ORS=","}1' input.txt
yields this:
EN1,EN2,EN3,EN4,EN5,
so is printing with a comma (so I'm not sure I understand your comment in your post about this not happening) though I suspect the trailing comma is a problem.
Tested with GNU Awk 3.1.7
You can use tr
in such situation.
tr '\n' ',' <input.txt
This replaces the final newline by a comma as well. To avoid this, on Linux, if you know that the input file does end with a newline:
<input.txt head -c -1 | tr '\n' ,
Add ; echo
if you want the output to be terminated by a newline.
Alternatively, you can get the shell to remove a trailing comma if there is one.
columns=$(<input.txt tr '\n' ',')
echo "${columns%,}"
I know, old topic, but I could not resist - here's yet another short and simple way to do this:
$ paste -sd, input.txt
EN1,EN2,EN3,EN4,EN5
$
Works on Linux and Solaris, maybe even on other platforms.