ট্যাব দ্বারা বিভাজিত মানগুলি ASCII সারণীতে রূপান্তর করুন


8

ট্যাব বিভাজিত ডেটা যেমন রূপান্তর করার সবচেয়ে কার্যকরী উপায় কী:

a   b   c   d   cat
NULL    NULL    NULL    NULL    NULL
NULL    NULL    NULL    d   d
NULL    NULL    c   NULL    c
NULL    NULL    c   d   c; d
NULL    b   NULL    NULL    b
NULL    b   NULL    d   b; d
NULL    b   c   NULL    b; c
NULL    b   c   d   b; c; d
a   NULL    NULL    NULL    a
a   NULL    NULL    d   a; d
a   NULL    c   NULL    a; c
a   NULL    c   d   a; c; d
a   b   NULL    NULL    a; b
a   b   NULL    d   a; b; d
a   b   c   NULL    a; b; c
a   b   c   d   a; b; c; d

এর কাছাকাছি কিছু:

a    | b    | c    | d    | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d    | d
NULL | NULL | c    | NULL | c
NULL | NULL | c    | d    | c; d
NULL | b    | NULL | NULL | b
NULL | b    | NULL | d    | b; d
NULL | b    | c    | NULL | b; c
NULL | b    | c    | d    | b; c; d
a    | NULL | NULL | NULL | a
a    | NULL | NULL | d    | a; d
a    | NULL | c    | NULL | a; c
a    | NULL | c    | d    | a; c; d
a    | b    | NULL | NULL | a; b
a    | b    | NULL | d    | a; b; d
a    | b    | c    | NULL | a; b; c
a    | b    | c    | d    | a; b; c; d

বর্তমানে আমি নোটপ্যাড ++ ব্যবহার করি নিম্নরূপ:

  1. ট্যাবগুলিকে স্পেসে রূপান্তর করুন
  2. ম্যানুয়ালি ডেটা সারিবদ্ধ করুন
  3. পাইপগুলি সন্নিবেশ করতে কলাম মোড ব্যবহার করুন

দ্বিতীয় ধাপটি সবচেয়ে ক্লান্তিকর এবং আমি কমপক্ষে এই অংশটি স্বয়ংক্রিয়ভাবে চালিত করতে চাই।

দ্রষ্টব্য: আমি কাজ করার সময় একটি ব্রাউজার ব্যবহার করি এবং কখনও কখনও আমার পাশাপাশি একটি পাঠ্য সম্পাদকও খোলা থাকে। দক্ষ সমাধানটি হ'ল এটির জন্য কমপক্ষে পরিশ্রমের প্রয়োজন। আমি ব্যাবহার করতে পারি:

  • নোটপ্যাড ++,
  • জেনেরিক টেক্সট এডিটর রিজেজেপ সহ সমর্থন সন্ধান / প্রতিস্থাপন করে
  • ব্রাউজার কনসোলের ভিতরে জাভাস্ক্রিপ্ট টাইপ করা হয়েছে
  • অনলাইন ওয়েব পরিষেবা
  • কমান্ড লাইনে পিএইচপি ( php -a)

4
আপনি কোন পরিবেশে আছেন? আপনি কি সরঞ্জাম উপলব্ধ আছে? আপনি কোনটির সাথে পরিচিত? আপনি কোনটি ব্যবহার করতে ইচ্ছুক - বা অনিচ্ছুক? আপনি এই প্রশ্নের উদ্দেশ্যগুলির জন্য "দক্ষতা" কীভাবে সংজ্ঞায়িত করেন? এই কাজটি করতে চান এমন অনেক লোক সম্ভবত কাজটি করার প্রায় অনেকগুলি উপায় রয়েছে; আপনার অতিরিক্ত তথ্য সরবরাহ করতে হবে। একটি ভাল প্রশ্ন জিজ্ঞাসা করুন দেখুন ।
জেফ জিটলিন

@ জেফজেটলিন আমি প্রশ্ন আপডেট করব।
সালমান এ

এটি একটি সাধারণ awkস্ক্রিপ্ট।
বার্মার

@ বার্মার আমি জঞ্জাল ব্যবহার করছি না তবে আমি নিশ্চিত যে অন্য কেউ এটির কাজে লাগবে।
সালমান এ

এটি সম্পর্কে একটি পিসিজি প্রশ্ন জিজ্ঞাসা করুন - লুলজ আসবে। অপেক্ষা করুন, এটি ইতিমধ্যে জিজ্ঞাসা করা হয়েছে ... কোডগল্ফ.স্ট্যাকেক্সেঞ্জার / প্রশ্নস / 100613/ … (দ্রষ্টব্য যে টিএসভি-> সিএসভি কেবলমাত্র একক চরিত্রের পার্থক্য ... এতে {{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}কাজ করার জন্য যথেষ্ট সুন্দর বলে মনে হচ্ছে?)

উত্তর:


9

আমি কীভাবে ট্যাব দ্বারা বিভাজিত মানগুলিকে একটি ASCII সারণিতে রূপান্তর করতে পারি?

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

আমি সেই পৃষ্ঠায় আপনার ডেটা আটকিয়েছি এবং এটি নিম্নলিখিত সারণী তৈরি করেছে:

+------+------+------+------+------------+
| a    | b    | c    | d    | cat        |
+------+------+------+------+------------+
| NULL | NULL | NULL | NULL | NULL       |
+------+------+------+------+------------+
| NULL | NULL | NULL | d    | d          |
+------+------+------+------+------------+
| NULL | NULL | c    | NULL | c          |
+------+------+------+------+------------+
| NULL | NULL | c    | d    | c; d       |
+------+------+------+------+------------+
| NULL | b    | NULL | NULL | b          |
+------+------+------+------+------------+
| NULL | b    | NULL | d    | b; d       |
+------+------+------+------+------------+
| NULL | b    | c    | NULL | b; c       |
+------+------+------+------+------------+
| NULL | b    | c    | d    | b; c; d    |
+------+------+------+------+------------+
| a    | NULL | NULL | NULL | a          |
+------+------+------+------+------------+
| a    | NULL | NULL | d    | a; d       |
+------+------+------+------+------------+
| a    | NULL | c    | NULL | a; c       |
+------+------+------+------+------------+
| a    | NULL | c    | d    | a; c; d    |
+------+------+------+------+------------+
| a    | b    | NULL | NULL | a; b       |
+------+------+------+------+------------+
| a    | b    | NULL | d    | a; b; d    |
+------+------+------+------+------------+
| a    | b    | c    | NULL | a; b; c    |
+------+------+------+------+------------+
| a    | b    | c    | d    | a; b; c; d |
+------+------+------+------+------------+

তারপরে আপনি এই আউটপুটটি অনুলিপি করতে পারেন (জেনারেটর বেশিরভাগ কঠোর পরিশ্রম করেছে), নোটপ্যাড ++ এ পেস্ট করুন এবং যথাযথ হিসাবে পরিষ্কার করতে পারেন।


5

আপনার যদি কমান্ড-লাইন সমাধানের প্রয়োজন হয় তবে আপনি প্যান্ডোক-প্লেসটেবল ফিল্টার সহ প্যান্ডোক ব্যবহার করতে পারেন ।

আপনার টেবিলটি এতে রাখুন foo.txtএবং সম্পাদন করুন:

pandoc-placetable --file=foo.txt --delimiter="\t" --header | pandoc -f json -t markdown-simple_tables-multiline_tables -o output.md

যার ফলাফল নিম্নলিখিত output.md:

| a    | b    | c    | d    | cat        |
|------|------|------|------|------------|
| NULL | NULL | NULL | NULL | NULL       |
| NULL | NULL | NULL | d    | d          |
| NULL | NULL | c    | NULL | c          |
| NULL | NULL | c    | d    | c; d       |
| NULL | b    | NULL | NULL | b          |
| NULL | b    | NULL | d    | b; d       |
| NULL | b    | c    | NULL | b; c       |
| NULL | b    | c    | d    | b; c; d    |
| a    | NULL | NULL | NULL | a          |
| a    | NULL | NULL | d    | a; d       |
| a    | NULL | c    | NULL | a; c       |
| a    | NULL | c    | d    | a; c; d    |
| a    | b    | NULL | NULL | a; b       |
| a    | b    | NULL | d    | a; b; d    |
| a    | b    | c    | NULL | a; b; c    |
| a    | b    | c    | d    | a; b; c; d |

STDIN থেকে পড়তে, --fileযুক্তিটি ছেড়ে দিন । STDOUT এ মুদ্রণ করতে, -oযুক্তিটি ছেড়ে দিন ।


3

ইউনিক্স / লিনাক্স columnকমান্ডটি ব্যবহার করার বিষয়ে রুস্লানের ধারণাটি ভাল, তবে তাদের উত্তরে প্রদত্ত কমান্ড লাইনটি বেশ কার্যকর নয়। প্রথমত, কমান্ড লাইনে (বা ) কোনও ট্যাব হিসাবে columnস্বীকৃতি দেয় না । আপনার কাছে থাকলে আপনি করতে পারেন\t\\tbash

column -t -s$'\t' foo.txt

অন্যথায়, আপনি করতে পারেন

column -t -s"$(printf '\t')" foo.txt

কিন্তু এমনকি যে প্রশ্নের উত্তর দেয় না। কাজ করে আপনি উল্লম্ব বারগুলি পেতে পারেন

column -t -s$'\t' -o' | ' foo.txt

যা আউটপুট যেমন উত্পাদন করে

a    | b    | c    | d    | cat
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d    | d
NULL | NULL | c    | NULL | c
NULL | NULL | c    | d    | c; d
NULL | b    | NULL | NULL | b
NULL | b    | NULL | d    | b; d
NULL | b    | c    | NULL | b; c
NULL | b    | c    | d    | b; c; d
a    | NULL | NULL | NULL | a
a    | NULL | NULL | d    | a; d
a    | NULL | c    | NULL | a; c
a    | NULL | c    | d    | a; c; d
a    | b    | NULL | NULL | a; b
a    | b    | NULL | d    | a; b; d
a    | b    | c    | NULL | a; b; c
a    | b    | c    | d    | a; b; c; d

ম্যানুয়ালি শিরোনামের পরে ড্যাশ লাইন যুক্ত করা তেমন ক্লান্তিকর নয়।


আপনার যদি একটি পূর্ণ ইউনিক্স / লিনাক্স সিস্টেমে অ্যাক্সেস না থাকে তবে আপনি এর জন্য সাইগউইন বা অন্য ইউনিক্স-পছন্দগুলির মধ্যে একটি ব্যবহার করতে পারেন।


এমনকি আপনি আমার উত্তর সম্পর্কে মন্তব্য করেননি যে এটি কার্যকর নাও হতে পারে point আমি টার্মিনাল আউটপুট দ্বারা বিভ্রান্ত হয়েছিল যা ট্যাবগুলি ডিফল্টরূপে 8 টি অক্ষর হওয়ার কারণে পাঠ্যটিকে প্রান্তিক করে তোলে (আমার ভিমের set ts=4সেটিংসের বিপরীতে )।
রুসলান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.