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


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.