লিনাক্সে, আমি কীভাবে কমান্ড-লাইন আউটপুট কেটে ফেলব?


56

আমি grep -nr sumthin *যদি আমার সোর্স কোড ডিরেক্টরিতে থাকি তবে এটি মিনিডাইড জাভাস্ক্রিপ্ট বা সিএসএস ফাইলগুলি থেকে খুব দীর্ঘ লাইনগুলি খুঁজে বের করে। আমি প্রতি লাইনে প্রথম 80 টি অক্ষর পেতে চাই।

উদাহরণস্বরূপ, একটি নিয়মিত grepআমাকে এটি দেয়:

css/style.css:21:   behavior: url("css/iepngfix.htc")
css/style-min.css:4:.arrow1{cursor:pointer;position:absolute;left:5px;bottom:10px;z-index:13;}.arrow2{cursor:pointer;position:absolute;right:5px;bottom:10px;z-index:13;}.calendarModule{z-index:100;}.calendarFooterContainer{height:25px;text-align:center;width:100%!important;z-index:15;position:relative;font-size:15px!important;padding:-2px 0 3px 0;clear:both!important;border-left:1px solid #CCC;border-right:1px  ... etc.

তবে আমি পরিবর্তে এটি পেতে চাই:

css/style.css:21:   behavior: url("css/iepngfix.htc")
css/style-min.css:4:.arrow1{cursor:pointer;position:absolute;left:5px;bottom:

লিনাক্স কমান্ড এটি কি করতে পারে?


"minified"? ওটার মানে কি?
CarlF


ধন্যবাদ। সঠিক লিঙ্ক en.wikipedia.org/wiki/Minification_%28programming%29
CarlF

উভয় লিঙ্কই আমার জন্য একই পৃষ্ঠায় নিয়ে যায়।
ভিক্টর

উত্তর:


80

ওএমজি, আমি পুরোপুরি ভুলে গেছি cut!

grep -nr sumthin * | cut -c -80

আমি কি কৌতুক! >: _ <


4
পালানোর সিকোয়েন্স বা রঙের কোডগুলি জড়িত থাকলে এটি কাজ করে না; উদাহরণস্বরূপ নিনgit log --oneline --graph --color=always | cut -c -$COLUMNS
ব্যাডপ

1
আমি দেখতে পেয়েছি যে এটি 80 টি প্রদর্শিত অক্ষরকে ছাঁটাই করে না, তবে এটি এখনও আমার সমস্যার সমাধান করে: লাইনগুলির কোনওটি মোড়ানো নয়, তাই আপনি এখনও কেবল প্রতিটি লাইনের শীর্ষস্থানীয় অংশটি দেখতে পান (যা আমার নির্দিষ্ট ব্যবহারের ক্ষেত্রে গুরুত্বপূর্ণ, তাই আমি এর <file>:<linenumber>আউটপুট দেখতে পারে grep -n)।
নিকি এরউইন রামিরেজ

1
দীর্ঘ প্রতিশ্রুতিবদ্ধ মন্তব্যগুলি আপনার নমুনা কমান্ডের আউটপুট কেটে না থাকলে "ব্রেক "ও করে। git log --oneline --graph --color=always | moreমোড়ানো পাঠ্য দ্বারা গ্রাফ বাধাগুলি প্রদর্শিত হবে। i.imgur.com/X8G7SIV.png
নিকি এরউইন রামিরেজ

হ্যাঁ, এই কারণেই আমি এই প্রশ্নটি শুরু করার জন্য
গুগল দিয়েছিলাম

5
যদি উদ্দেশ্যটি কেবল দৃষ্টিগুলি ভালভাবে দেখতে সক্ষম হয় (ব্যবহারের জন্য কোথাও আউটপুট পুনর্নির্দেশ না করে) তবে less -Sআপনি যা চান তা তাই। -Sহয় --chop-long-lines। মূলত, এটি লাইন মোড়ানো বন্ধ করে দেয়
এন্টারপ্রাই

5

cutআপনি ব্যতীত অন্যগুলি fold(এবং কিছু ক্ষেত্রে fmt) ব্যবহার করতে পারেন । প্যাকেজের
foldঅংশ coreutils

$ echo "some very long long long text" | fold -w 5   # fold on 5 chars per line
some 
very 
long 
long 
long 
text

foldঅবশিষ্ট পাঠ্যটি কাটবে না , তবে এটি পরবর্তী লাইনে আউটপুট করে।


এর জন্য ধন্যবাদ, এটি ভবিষ্যতে কার্যকর হতে পারে। আমার ক্ষেত্রে, আমি সত্যিই পাঠ্যটি কাটাতে চেয়েছিলাম, তাই আউটপুটটির file:linenumberউপসর্গটি grepচোখের দ্বারা সহজে স্ক্যান করার জন্য, সুসংগত।
নিকি এরউইন রামিরেজ

1

আপনি যা করতে চান তা ঠিক না হলেও আপনি awkকয়েকটি নির্দিষ্ট কলাম মুদ্রণ করতে ব্যবহার করতে পারেন । আপনি এই ক্ষেত্রে ডিলিমিটারটি ":" হিসাবে নির্দিষ্ট করতে পারেন।


যদিও নির্দিষ্ট সীমাবদ্ধ নেই। টার্মিনালের 1 লাইনে ফিট করার জন্য আমি একটি নির্দিষ্ট দৈর্ঘ্যে আউটপুটটি সত্যই কাটছি।
নিকি এরউইন রামিরেজ

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