আমি বিড়াল ব্যবহার করে কোনও ফাইলের প্রথম লাইনটি কীভাবে পড়ব?


198

আমি কীভাবে কোনও ফাইলের প্রথম লাইনটি পড়তে পারি cat?

উত্তর:


374

আপনি প্রয়োজন হবে না cat

head -1 file

ভাল কাজ করবে।


65
+1 টি। আপনার কেবল মাথাটি পুরো বিড়ালটির নয়: পি (কমান্ড লেজটি বাশ
পাণেরও

নেই headসম্পূর্ণ ফাইল পড়তে এবং এটিকে কেটে, অথবা এটি শুধুমাত্র 1 টি লাইন পড়ে ও?
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিগ্রাগনকাই, আমার ধারণা আপনি উত্সটি পরীক্ষা করতে পারেন ।
কার্ল নরুম

2
আমি অনুমান করি যে এটি কেবল প্রথম লাইনগুলি পড়ে - এটি মিলিসেকেন্ডে কয়েকশ 'মেগাবাইট ফাইল খোলে।
ব্রায়ান হক

1
...বুঝেছি! cat <(head file1) <(head file2)উত্স
জেমস মালিকরা

72

আপনি না, headপরিবর্তে ব্যবহার করুন।

head -n 1 file.txt

41

বিভিন্ন উপায় আছে:

sed -n 1p file
head -n 1 file
awk 'NR==1' file

21

আপনি ব্যবহার করতে পারে cat file.txt | head -1, কিন্তু এটা সম্ভবত সরাসরি ব্যবহার মাথা থেকে ভালো হতে, হিসাবে হবে head -1 file.txt


16

এটি দিয়ে সম্ভব নাও হতে পারে cat। আপনার ব্যবহার করার কোনও কারণ আছে cat?

আপনার যদি কেবল ব্যাশ আদেশ দিয়ে এটি করার দরকার হয় তবে এটি আপনার পক্ষে কাজ করা উচিত:

head -n 1 file.txt

9

catএকা সম্ভব নাও হতে পারে তবে আপনি যদি headএই কাজগুলি ব্যবহার করতে না চান তবে :

 cat <file> | awk 'NR == 1'

2
আমি মনে করি এটি নির্দিষ্টভাবে ব্যবহারের জন্য ডিজাইন করা লাইনে 'বিড়ালের অকেজো ব্যবহার' বলার মতো নির্বোধ cat, তাই না?
জেকেরিয়ান

এই পদ্ধতিটি দুর্দান্ত কারণ আপনি যে কোনও লাইন বেছে নিতে পারেন।
desgua

3
@ দেসগুয়া awkদুর্দান্ত তবে আপনার catএখানে দরকার নেই। awk 'NR == 2 {print $0}' <file>একই জিনিস। (এবং আরো অনেক কিছু, আপনি যদি একটু শিখতে awk
এরিক উইলসন

5

আমি অবাক হয়েছি যে এই প্রশ্নটি যতদিন ছিল ততক্ষণ রয়েছে এবং এখনও কোনও প্রাক-মানচিত্র ফাইলটি অন্তর্নির্মিত পদ্ধতি সরবরাহ করে নি।

IFS= read -r first_line <file

... ফাইলের প্রথম লাইনটি ভেরিয়েবলের মধ্যে প্রসারিত করা যায় "$first_line", এটি সহজ।

তাছাড়া, কারণ readব্যাশ পাতাটা করা হয় এবং এই ব্যবহার কোন subshell প্রয়োজন, এটা যেমন subprocesses জড়িত পন্থা তুলনায় উল্লেখযোগ্যভাবে অধিক কার্যকর headবা awk


IFS=শুরুতে অংশটি কী ?
ফ্লোরিয়ান

আমার খারাপ, এখানে একটি ব্যাখ্যা: unix.stackexchange.com/questions/184863/…
ফ্লোরিয়ান

রাইট; এই ক্ষেত্রে, ক্লিয়ারিং IFSহ'ল স্পিডিং স্পেসটি পড়ার স্ট্রিং থেকে ছিনিয়ে নেওয়া থেকে বাধা দেয় leading
চার্লস ডাফি

3

আপনার কাছে কোনও ভিউ ভি 4 + থাকলে আপনার কোনও বাহ্যিক কমান্ডের দরকার নেই

< file.txt mapfile -n1 && echo ${MAPFILE[0]}

অথবা আপনি যদি সত্যিই চান cat

cat file.txt | mapfile -n1 && echo ${MAPFILE[0]}

:)


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