Bash Cat ملفات متعددة المحتوى في سلسلة واحدة بدون خطوط جديدة

StackOverflow https://stackoverflow.com/questions/3936738

  •  30-09-2019
  •  | 
  •  

سؤال

حصلت على بعض الملفات مع الاسم ابدأ كأجلة eg_. وكل واحد فقط يحتوي على سطر واحد

eg_01.txt: @China: 129.00

eg_02.txt @uk: 219.98

eg_03.txt @USA: 341.90

......

أتوقع أن أقوم بتوصيلهم إلى سطر واحد لإرساله بواسطة عنوان URL مثل:@China: 129.00@uk: 219.98@usa: 341.90

أنا استخدم صدى cat eg_*

يعطيني الإخراج يبدو وكأنه سلسلة ، لكنه يحتوي في الواقع على سطر جديد: "china: 129.00

uk: 219.98 @USA: 341.90 "

هل هناك أي طريقة أخرى يمكنني بناء تلك السلسلة المتوقعة والتخلص من الخط الجديد وحتى المساحة؟ هل القط فقط بما يكفي للقيام بذلك؟

شكرا مقدما

هل كانت مفيدة؟

المحلول

يمكنك دائما أن تنشرها tr

tr "\n" " "

الذي يزيل جميع الخطوط الجديدة stdin ويحل محلهم بالمساحات

تعديل: كما اقترح بارت ساس ، يمكنك أيضًا إزالة الخطوط الجديدة مع tr -d

tr -d "\n"

(ملاحظة: فقط تحديد سلسلة فارغة tr للحجة الثانية لن تفعل)

نصائح أخرى

باستخدام أمر واحد فقط

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

في بيرل ، ستفعل ذلك مثل هذا:

perl -pe'chomp' eg*.txt

ال -p يقول "حلقة من خلال ملف الإدخال وافعل أي رمز محدد بواسطة -e تحول. ال chomp في بيرل يقول "إزالة أي خطوط جديدة."

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top