আউটপুট মোড়ানো না বাশ কিভাবে?


33

যখনই কিছু কমান্ড আউটপুট হিসাবে দীর্ঘ লাইন উত্পন্ন করে (উদাহরণস্বরূপ, যখন ls -lকোনও ফোল্ডারে দীর্ঘ নামযুক্ত ফাইল থাকে), দীর্ঘ রেখাগুলি পরের লাইনে আবৃত থাকে, এভাবে কলামের কাঠামো বিশৃঙ্খলা হয়।

এড়ানো কোন উপায় আছে কি? 'নওর্যাপ' ভিম বিকল্পের মতো কিছু?


হালনাগাদ

আমি গ্রহণযোগ্য উত্তরের একটি সমস্যা লক্ষ্য করেছি:
যদি আমি এর মতো একটি উপকরণ তৈরি করি: alias ll="tput rmam; ls -l; tput smam"
এবং তারপরে আউটপুট গ্রেপ করার চেষ্টা করুন: ll | grep foo
এটি এখনও সমস্ত মুদ্রণ করবে গ্রিপ ছাড়াই ফাইল ।

আমি যে সমাধানটি পেয়েছি তা হ'ল পুরো ওরফে চারপাশে বন্ধনী স্থাপন করা:
alias ll="(tput rmam; ls -l; tput smam)"



সম্পর্কিত superuser.com/q/600677/105108
ks1322

উত্তর:


27

মনে রাখবেন বাশের সাথে এর কোনও যোগসূত্র নেই (একবার আপনি কমান্ড চালু করলে, ব্যাশ কেবল এটি শেষ হওয়ার জন্য অপেক্ষা করে) এবং টার্মিনালের সাথে করার মতো সমস্ত কিছুই।

বেশিরভাগ টার্মিনাল এমুলেটরগুলি ডিফল্টরূপে সঠিক মার্জিনে মোড়ক করে। টার্মিনাল এমুলেটর যদি এটি সমর্থন করে তবে উপযুক্ত নিয়ন্ত্রণ ক্রম ব্যবহার করে এটি বন্ধ করা যেতে পারে ; তারপরে দীর্ঘ লাইনগুলি কেবল কাটা হয়:

printf '\033[?7l'
ls -l /a/folder/that/contains/files/with/long/names
printf '\033[?7h'

হ্যাঁ, আমি এটিই খুঁজছিলাম, গিলসকে ধন্যবাদ!
মিহাই রোটারু

12
আরও বহনযোগ্য:tput rmam; ls -l longname; tput smam
পরবর্তী বিজ্ঞপ্তি না হওয়া পর্যন্ত

আর ভালো; তবে [আরএস] ম্যাম কোথা থেকে এল? আমি টিপুট এবং টার্মক্যাপ ম্যানুয়াল অনুসন্ধান করেছি কিন্তু সেগুলি সম্পর্কে কিছুই খুঁজে পাচ্ছি না?
মিহাই রোটারু

2
@ মিহাই: টার্মিনো ডকুমেন্টেশন চেষ্টা করুন ( man 5 terminfoলিনাক্সে)।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

প্রকৃতপক্ষে, এটি সেখানে আছে
মিহাই রোটারু


5

আপনি যেমন একটি ফাংশন ব্যবহার করতে পারেন:

nowrap() 
{ 
   cut -c-$(tput cols); 
}

nowrapআপনার ফাংশনটির নাম বা যা কিছু হোক না কেন আপনাকে কমান্ড উপসর্গ করতে হবে তা মনে রাখবেন ।


এটি কাজ করে, তবে আমি রঙিন কোডিং হারাতে চাই; পাশাপাশি সংরক্ষণের কোনও উপায়?
মিহাই রোটারু

3

আপনি কোনও ফাংশন ওভাররাইড করতে পারেন যাতে এটি স্বয়ংক্রিয়ভাবে tput rmamআপনার গ্রেপের আগে এবং tput smamপরে চলে:

function grep () {
  tput rmam;
  command grep "$@";
  tput smam;
}

এটি আপনার .bash_profileএবং যখনই আপনি চালাবেন তা ফেলে দিনgrep দৌড়াবেন, এটি লাইন মোড়ক ছাড়াই গ্রেপ হবে।

এটি অত্যন্ত সম্পাদনা করা হয়েছে, মন্তব্যকারীদের কাছে ক্ষমা চেয়ে নিচ্ছেন।


sleep 20আশ্চর্যজনক :-) হয়
সিরো Santilli新疆改造中心法轮功六四事件

2

এটি -S সুইচ দিয়ে কম কমান্ডে পাইপ করুন:

ls -l | less -S

তারপরে আপনি স্ক্রোল করতে উপরে / নীচে / বাম / ডানদিকে তীরগুলি ব্যবহার করতে এবং প্রস্থান করতে q টাইপ করতে পারেন।


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