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.