ASCII ফাইলে কলামগুলি সারিবদ্ধ করুন


12

আমার কাছে একটি পাঠ্য ফাইল রয়েছে যা তার মতো দেখাচ্ছে:

#c1     c2              c3              c4              c5              c6      c7      c8      c9      c10     c11     c12     c13
4599    995,274 2523,658        264,1417170     -33,6000        -0,3600 0,0202  0,0069  0,0227  10,1041 0,0169  0,2817  0,0239
6173    1552,290        1595,696        264,0603912     -33,4880        0,4374  0,0287  1,8123  0,0385  10,1289 0,0292  2,8445  0,0366
6456    1658,630        1529,292        264,0449377     -33,4800        0,0109  0,0234  1,0955  0,0296  10,5032 0,0223  1,7168  0,0293
8932    2750,029        1374,395        263,8866195     -33,4615        -0,3185 0,0249  0,9196  0,0302  10,5858 0,0221  1,3886  0,0296
4095    820,716 495,315 264,1658451     -33,3546        -0,4388 0,0216  0,6497  0,0252  10,6026 0,0188  1,1796  0,0258
4737    1045,289        1395,983        264,1338240     -33,4636        0,5900  0,0231  0,8853  0,0273  10,6501 0,0204  1,1661  0,0270

উদাহরণস্বরূপ: নির্দিষ্ট এলোমেলো রেখায় বিন্যস্ত করা হয়নি (ফাইলটি ~ 10000 লাইন দীর্ঘ) আমার দেখতে এটির মতো দেখতে এটি দরকার:

#c1     c2              c3              c4              c5              c6      c7      c8      c9      c10     c11     c12     c13
4599    995,274         2523,658        264,1417170     -33,6000        -0,3600 0,0202  0,0069  0,0227  10,1041 0,0169  0,2817  0,0239
6173    1552,290        1595,696        264,0603912     -33,4880        0,4374  0,0287  1,8123  0,0385  10,1289 0,0292  2,8445  0,0366
6456    1658,630        1529,292        264,0449377     -33,4800        0,0109  0,0234  1,0955  0,0296  10,5032 0,0223  1,7168  0,0293
8932    2750,029        1374,395        263,8866195     -33,4615        -0,3185 0,0249  0,9196  0,0302  10,5858 0,0221  1,3886  0,0296
4095    820,716         495,315         264,1658451     -33,3546        -0,4388 0,0216  0,6497  0,0252  10,6026 0,0188  1,1796  0,0258
4737    1045,289        1395,983        264,1338240     -33,4636        0,5900  0,0231  0,8853  0,0273  10,6501 0,0204  1,1661  0,0270

সুতরাং মূলত আমি ফাইলের কলামগুলিকে স্বয়ংক্রিয়ভাবে সারিবদ্ধ করতে একটি স্ক্রিপ্ট / কমান্ড লাইন ইউটিলিটি খুঁজছি।

উত্তর:


12

করার চেষ্টা করুন :

পরীক্ষা করার জন্য STDOUT:

column -t file.txt

ফাইলটি পরিবর্তন করতে:

column -t file.txt > new_file.txt && mv new_file.txt file.txt

যেমন আপনি দেখতে পাচ্ছেন, আপনার কেবল এটিই দরকার। জটিল printfকৌশল নিয়ে খেলে এটি আপনার অনেক সময় বাঁচায় ।


এই কমান্ডটি কিছুই করেনি, এটি কেবলমাত্র টার্মিনালে ফাইলটি প্রদর্শন করেছিল এবং শেষ হয়েছিল। আমি এখানে কি মিস করছি?
গ্যাব্রিয়েল

আপনি কোন ওএস ব্যবহার করছেন? (এটি আপনার আসল পোস্টে রেখে দিন)
গিলস কুইনট

আমি উবুন্টু 12.10 ব্যবহার করছি।
গ্যাব্রিয়েল

শুধু আবার চেষ্টা করে দেখুন, কিছুই না। সেই কমান্ডটি কি মূল ফাইলটি সংশোধন করবে বা একটি নতুন প্রান্তিককরণ তৈরি করবে?
গ্যাব্রিয়েল

অন্তর্ভুক্ত ফাইলটি সম্পাদনা করতে আমার সম্পাদনা দেখুন (আমার পূর্ববর্তী সংস্করণটি কেবলমাত্র টার্মিনালে প্রদর্শিত হয়েছিল)
গিলস কুইনট

3

আপনি যথাযথভাবে নামযুক্ত কলামের সরঞ্জামটি সন্ধান করছেন।

আপনি যা চান তার জন্য আপনাকে এই জাতীয় কলামে আপনার ডেটাটি পাইপ করতে হবে

cat yourfile | column -s " " -t

-S দিয়ে ডিলিমিটার সংজ্ঞায়িত করুন

-s " "

কলিমে -t দিয়ে একটি টেবিল তৈরি করতে বলুন


এর "some data\nfoo bar"অর্থ কী?
গ্যাব্রিয়েল

ওপি যা বলেছিল তা নয়;)
গিলস কুইনট

@ স্পটনিক, আমি এটি ঠিক করেছি। দুঃখিত
সিলভাররোকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.