bash cat multiple files content in to single strin

2019-02-16 10:29发布

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

标签: bash file cat
3条回答
干净又极端
2楼-- · 2019-02-16 11:13

Using only one command

url=$(awk '{printf "%s",$0}' eg*)
查看更多
戒情不戒烟
3楼-- · 2019-02-16 11:22

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."

查看更多
我欲成王,谁敢阻挡
4楼-- · 2019-02-16 11:25

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)

查看更多
登录 后发表回答