Câu hỏi bash cat nhiều tệp nội dung vào một chuỗi không có dòng mới


tôi có một số tập tin với tên bắt đầu như eg_. và mỗi chỉ chứa một dòng duy nhất

eg_01.txt: @china: 129,00

eg_02.txt @uk: 219,98

eg_03.txt @USA: 341,90

......

tôi hy vọng sẽ đưa chúng vào một dòng duy nhất để gửi bằng URL như: @china: 129.00@uk: 219.98@USA: 341.90

tôi sử dụng tiếng vang cat eg_*

nó cho tôi đầu ra trông giống như một chuỗi, nhưng nó thực sự chứa dòng mới: "@china: 129,00

@uk: 219,98 @USA: 341,90 "

là có cách nào khác tôi có thể xây dựng chuỗi mà dự kiến ​​và thoát khỏi dòng mới và thậm chí cả không gian? chỉ là mèo đủ để làm điều này?

cảm ơn trước


9
2017-10-14 19:20


gốc


Liên quan: stackoverflow.com/questions/8739427/… - redolent


Các câu trả lời:


Bạn luôn có thể dẫn nó đến tr

tr "\n" " "

Điều đó sẽ xóa tất cả các dòng mới trên stdin và thay thế chúng bằng dấu cách

CHỈNH SỬA: như đề xuất của Bart Sas, bạn cũng có thể xóa các dòng mới bằng tr -d

tr -d "\n"

(lưu ý: chỉ định một chuỗi rỗng tr đối số thứ hai sẽ không làm)


17
2017-10-14 19:22



Nếu bạn không muốn dấu cách giữa các chuỗi, bạn có thể sử dụng tr -d '\ n'. - Bart Sas
cảm ơn bạn rất nhiều mèo eg_ * | tr-'\ n' đã làm thủ thuật - user271785
Lưu ý cho một số lượng rất nhỏ những người sẽ có tệp bằng thuật ngữ dòng Windows: "\ r \ n" sẽ là chuỗi được sử dụng. - A. Wilson


Chỉ sử dụng một lệnh

url=$(awk '{printf "%s",$0}' eg*)

1
2017-10-14 23:56





Trong Perl, bạn sẽ làm như sau:

perl -pe'chomp' eg*.txt

Các -p nói "lặp qua tệp đầu vào và làm bất kỳ mã nào được chỉ định bởi -e công tắc điện. Các chomp trong Perl nói "Xóa bất kỳ dòng mới nào."


1
2017-10-15 00:05