问题
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
回答1:
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)
回答2:
Using only one command
url=$(awk '{printf "%s",$0}' eg*)
回答3:
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."
来源:https://stackoverflow.com/questions/3936738/bash-cat-multiple-files-content-in-to-single-string-without-newlines