bash cat multiple files content in to single string without newlines
Question
i got some files with name start as eg_. and only each contains one single line
eg_01.txt: @china:129.00
eg_02.txt @uk:219.98
eg_03.txt @USA:341.90
......
i am expecting to cat them in to a single line to send by URL like: @china:129.00@uk:219.98@USA:341.90
i use
echo cat eg_*
it give me the output look like a string, but it actually contains new line: "@china:129.00
@uk:219.98 @USA:341.90"
is there any other way i can construct that string which expected and get rid of new line and even the space? is only cat enough to do this?
thanks in advance
Solution
You could always pipe it to tr
tr "\n" " "
That removes all newlines on stdin
and replaces them with spaces
EDIT: as suggested by Bart Sas, you could also remove newlines with tr -d
tr -d "\n"
(note: just specifying an empty string to tr
for the second argument won't do)
OTHER TIPS
Using only one command
url=$(awk '{printf "%s",$0}' eg*)
In Perl, you'd do it like this:
perl -pe'chomp' eg*.txt
The -p
says "loop through the input file and do whatever code is specified by the -e
switch. The chomp
in Perl says "Remove any trailing newlines."