دمج القيم من ملفات مختلفة في ملف CSV واحد
سؤال
لدي ملفان يحتويان على قيمة في كل سطر.
يحرر :
عرفت إجابة هذا السؤال وأنا في خضم كتابة التدوينة ولم أدرك أنني نشرتها بالخطأ وهي في حالتها غير المكتملة.
كنت أحاول أن أفعل:
paste -d ',' file1 file2 file 3 file 4 > file5.csv
وكان يحصل على نتيجة غريبة.أدركت لاحقًا أن هذا كان يحدث لأن بعض الملفات كانت تحتوي على حرف إرجاع وحرف السطر الجديد في نهاية السطر بينما كان لدى البعض الآخر حرف السطر الجديد فقط.يجب أن أتذكر دائمًا الاهتمام بهذه الأشياء.
المحلول
الملف 1:
1 2 3
الملف 2:
2 4 6
paste --delimiters=\; file1 file2
سوف تسفر:
1;2 3;4 5;6
نصائح أخرى
لدي شعور بأنك لم تنته من كتابة سؤالك بعد، ولكنني سأحاول ذلك.;)
file1: file2: file3:
1 a A
2 b B
3 c C
~$ paste file{1,2,3} |sed 's/^\|$/"/g; s/\t/","/g'
"1","a","A"
"2","b","B"
"3","c","C"
أو،
~$ paste --delimiter , file{1,2,3}
1,a,A
2,b,B
3,c,C
ربما تحتاج إلى توضيح سؤالك أو إعادة وضع علامة عليه ولكن الإجابة كما هي موجودة أدناه.
الانضمام إلى ملفين تحت Linux
cat filetwo >> fileone
لا تنس أيضًا التنوع على الإطلاق LogParser إذا كنت تستخدم نظام التشغيل Windows.
يمكنه تشغيل استعلامات تشبه SQL مقابل ملفات نصية مسطحة لتنفيذ جميع أنواع عمليات الدمج.
يجب أن تعمل الإجابات السابقة باستخدام logparser أو أدوات سطر الأوامر.إذا كنت تريد إجراء بعض العمليات الأكثر تعقيدًا على السجلات مثل التصفية أو الانضمام، فيمكنك التفكير في استخدام أداة ETL (تتبادر إلى ذهنك Pentaho وMapforce وTalend).تمنحك هذه الأدوات عمومًا لوحة رسومية لتحديد العلاقات بين مصادر البيانات وأي عمليات تريد تنفيذها على الصفوف.