দীর্ঘ আউটপুট দুটি কলামে বিভক্ত করুন


20

আমার কোনও স্ক্রিপ্ট থেকে আউটপুট কলামেট করার জন্য কি কোনও সহজ ইউটিলিটি বা স্ক্রিপ্ট রয়েছে? আমার কাছে কোনও আকারে ডেটা রয়েছে:

A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn
F kjhnakjshddnaskjdh

তবে এটি যদি দীর্ঘ হয়ে যায়, নিম্নলিখিত ফর্মটিতে ডেটা লিখুন (যেখানে এখনও উল্লম্বভাবে আদেশ করা হয়েছে):

A aldkhasdfljhaf    D lseuiorlhisnflkc
B klajsdfhalsdfh    E sdjklfhnslkdfhn
C salkjsdjkladdag   F kjhnakjshddnaskjdh

ম্যানপেজটি পড়া থেকে, আমি মনে করি না যে এটি এমন কিছু columnজন্য উপযুক্ত হবে তবে আমি নিশ্চিত নই। ফর্মটিতে বিভক্ত হওয়ার পক্ষে এটি যথেষ্ট সহজ:

A B 
C D 
E F

কেবলমাত্র \nপ্রতিটি দ্বিতীয় লাইনে মুদ্রণ করে (আমার বর্তমান স্ক্রিপ্টটি কী করে)। কোন ধারনা? ধন্যবাদ!

উত্তর:


16

আপনি কি আসলে চেষ্টা করেছিলেন column ? এটি আপনি যা চান ঠিক তা বলে মনে হচ্ছে:

$ cat file
A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn

$ column file
A aldkhasdfljhaf    D lseuiorlhisnflkc
B klajsdfhalsdfh    E sdjklfhnslkdfhn
C salkjsdjkladdag   F kjhnakjshddnaskjdh

আমি চেষ্টা করেছিলাম। কিন্তু ভুলভাবে (সঙ্গে -t)... But for yours to work reliably you probably need --columns`।
— Hauke Laging

আমি চেষ্টা করেছিলাম কিন্তু কোনও কারণে আমি বুঝতে পারি নি যে এটি আপনার টার্মিনাল উইন্ডোর প্রস্থের উপর নির্ভর করে (এখন স্পষ্ট বলে মনে হয়)!
— হেমার

এছাড়াও আমি একবারে দুটি মেশিনে এটি পরীক্ষা করছিলাম। স্পষ্টতই পুরানো সংস্করণ (বৈজ্ঞানিক লিনাক্সের 1993 এর প্রায়) নতুন 2004 সংস্করণটির সাথে আলাদা আচরণ করে ...
— হেমার

11

আউটপুটটি কলামেট করতে, prমুদ্রণের জন্য পাঠ্য ফাইলগুলিকে রূপান্তর করে:

-COLUMN, --columns=COLUMN: output COLUMN columns
      and print columns down, unless -a is used.

-t, --omit-header : omit page headers and trailers

যেমন

ls /etc | pr -2 -t
abrt                                gtk-2.0
acpi                                hal
adjtime                             hba.conf
agent.properties                    host.conf
aliases                             hosts
aliases.db                          hosts.allow
...

বড় (দীর্ঘ) ফাইলের জন্য সঠিকভাবে কাজ করছে না।
— একবার

2

আপনি ফাইলটি দুটিতে বিভক্ত করতে পারেন (একই সংখ্যার লাইনের সাথে বা প্রথম ফাইলটিতে আরও একটি লাইন রয়েছে) এবং তারপরে এটি করুন:

paste file1 file2

লাইনগুলির দৈর্ঘ্য যদি খুব আলাদা হয় তবে স্পেসগুলির সাথে প্যাডিংয়ের মাধ্যমে দৈর্ঘ্যের সাথে মানিয়ে নিতে প্রিন্টফ ব্যবহার করা প্রয়োজন।


বা ... | paste - - যখন "দীর্ঘ আউটপুট বিভক্ত করা হবে" ...
— don_crissti

1

আপনি কেবল প্লেইন ব্যবহার করতে পারেন columns:

$ cat test.txt | columns
A aldkhasdfljhaf             B klajsdfhalsdfh             C salkjsdjkladdag
D lseuiorlhisnflkc           E sdjklfhnslkdfhn            F kjhnakjshddnaskjdh

উল্লেখ্য:columns কমান্ডের অংশ autogenআমার ফেডোরা 14 সিস্টেমে প্যাকেজ।

$ rpm -qf /usr/bin/columns
autogen-5.9.4-7.fc12.x86_64

তথ্যসূত্র


columns: command not found। অটোজেন ?
— গিলস 23'16

@ গিলস - হ্যাঁ এটির অংশ autogen। সবেমাত্র আমার ফেডোরা 14 সিস্টেমে পরীক্ষা করা হয়েছে। আমি উত্তরে এটি উল্লেখ করব।
— slm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.