আমি কীভাবে কোনও পাঠ্য ফাইল থেকে নিউলাইনগুলি সরিয়ে ফেলব?


116

আমার কাছে নিম্নলিখিত তথ্য রয়েছে এবং আমার এগুলি সমস্ত এক লাইনে রাখা দরকার।

আমার আছে এটা:

22791

;

14336

;

22821

;

34653

;

21491

;

25522

;

33238

;

আমার এটা দরকার:

22791;14336;22821;34653;21491;25522;33238;

সম্পাদনা

এই আদেশগুলির কোনওটিই সঠিকভাবে কাজ করছে না।

তাদের বেশিরভাগই ডেটাটি দেখতে দেয়:

22791

;14336

;22821

;34653

;21491

;25522

15
ব্রাউজারের ঠিকানা বারে বা অন্য কোনও পাঠ্য ক্ষেত্রে কপি-পেস্ট করুন। কুইক'নডার্ট কিন্তু অল্প পরিমাণে ডেটার জন্য কাজ করে।
অগ্নি

উত্তর:


245
tr -d '\n' < yourfile.txt

সম্পাদনা:

এখানে পোস্ট করা কমান্ডগুলির মধ্যে যদি কোনও কাজ না করে, তবে আপনার ক্ষেত্রগুলি পৃথক করার জন্য একটি নতুন লাইন ছাড়া আপনার কাছে অন্য কিছু রয়েছে। সম্ভবত ফাইলটিতে আপনার ডস / উইন্ডোজ লাইনের শেষ রয়েছে (যদিও আমি পার্ল সমাধানগুলি সেই ক্ষেত্রেও কাজ করবে বলে আশা করব)?

চেষ্টা করুন:

tr -d "\n\r" < yourfile.txt

যদি এটি কাজ না করে তবে আপনার ফাইলটি আরও নিবিড়ভাবে পরীক্ষা করতে হবে (উদাহরণস্বরূপ একটি হেক্স সম্পাদক) আপনি সেখানে কী অক্ষরগুলি সরাতে চান তা জানতে to


7
আপনি কীভাবে এই আউটপুটটিকে একই বা অন্য কোনও ফাইলে লিখবেন?
স্বর্ণের নাম

3
আমি মনে করি trখালি লাইনের জন্য উপযুক্ত নয়। আপনি কি মনে করেন? - - আমি মনে করি sedযে এখানে বর্ণিত সর্বোত্তম বিকল্পটি
স্ট্যাকওভারফ্লো.com/q/16414410/54964

অন্য ফাইলে আউটপুট রুট করতে কেবল আউটপুট পুনঃনির্দেশ ব্যবহার করুন। এটিকে একই ফাইলের পাইপটিকে "স্পঞ্জ" এ চালিত করতে (দেবিয়ান বেস সিস্টেমে "মোরটিলস" প্যাকেজে উপলব্ধ)।
প্লাগওয়াশ

একই ফাইলে আউটপুট লিখতে, echo -n $(tr -d "\n" < yourfile.txt) > yourfile.txt
শে


9
paste -sd "" file.txt

1
সোলারিসে (10) paste -sd ""ডিফল্টরূপে STDIN এ কাজ করে না, তাই আপনি যদি এটিতে পাইপিং করেন তবে ব্যবহার করুন: (some command) | paste -sd "" -
জনজিএইচ

আপনি যদি চূড়ান্ত নিউলাইনও সরাতে চান তবে এটি কাজ করে না । এটি কেবল মধ্যবর্তী নিউলাইনগুলি সরিয়ে দেয়।
জোছ

এটি ম্যাক ওএসে কাজ করেনি, সন্দীপের সংস্করণটি করেছে। paste -sd'\0' -
ট্রেনটন

7
tr -d '\n' < file.txt

অথবা

awk '{ printf "%s", $0 }' file.txt

অথবা

sed ':a;N;$!ba;s/\n//g' file.txt

এই পৃষ্ঠাতে এখানে নতুন লাইনগুলি সরাতে অন্যান্য পদ্ধতিগুলির একটি গোছা রয়েছে।

কল্পিত অপব্যবহার অপসারণ করতে সম্পাদিত :)


4

ব্যবহার

head -n 1 filename | od -c 

আপত্তিজনক চরিত্রটি কি তা চিত্রিত করা। তারপরে ব্যবহার করুন

tr -d '\n' <filename

এলএফের জন্য

tr -d '\r\n' <filename

সিআরএলএফের জন্য



2

ম্যান 1 এড ব্যবহার:

# cf. http://wiki.bash-hackers.org/doku.php?id=howto:edit-ed 
ed -s file <<< $'1,$j\n,p'  # print to stdout 
ed -s file <<< $'1,$j\nwq'  # in-place edit

2

অভ্রষ্ট ঘটনা: পরিবর্তে ASCII ব্যবহার করুন।

tr -d '\012' < filename.extension   

(সম্পাদিত কারণ আমি ফ্রিগজিনের উত্তর দেখতে পাইনি, যার একই সমাধান ছিল, কেবলমাত্র পার্থক্যটি ছিল আমার খনিতে ASCII)


2

POSIX ক্লাস সহ সেড ব্যবহার করুন

এটি কেবল সাদা স্থান (স্পেস এবং ট্যাব) সমেত সমস্ত লাইন সরিয়ে ফেলবে

sed '/^[[:space:]]*$/d'

আপনি যা কাজ করছেন কেবল তা নিয়ে যান এবং এটিতে পাইপ দিন

উদাহরণ

cat filename | sed '/^[[:space:]]*$/d'


সেড-আই '/ ^ [[: স্পেস:]] * $ / d' ফাইলের নাম ... জায়গা সম্পাদনা করার জন্য; উপরে হিসাবে উত্তর পর্দায় আউটপুট হবে
BradChesney79


1

যদি ডেটা file.txt এ থাকে তবে:

echo $(<file.txt) | tr -d ' '

' $(<file.txt)' ফাইলটি পড়ে এবং বিষয়গুলি শব্দের একটি সিরিজ হিসাবে দেয় যা 'প্রতিধ্বনি' পরে তাদের মধ্যবর্তী স্থানের সাথে প্রতিধ্বনিত হয়। 'Tr' কমান্ডের পরে যে কোনও স্পেস মুছে ফেলা হয়:

22791;14336;22821;34653;21491;25522;33238;

এটি যতক্ষণ না ইনপুটটি খুব বেশি বড় না হয় এবং যতক্ষণ আপনি বাশ ব্যবহার করেন না (ততক্ষণ বাশকে ট্যাগ করা হয়) works আমি যদি এখনই উত্তর লিখছি, তবে তা tr -d '\n' < file.txtহ'ল, যা গ্রহণিত উত্তরটি দেয় (এবং আমি অবাক হয়েছি যে আমি এটি তখন লিখিনি)। এটি সম্ভবত 'এটি করার আরও একটি উপায়' দেখাতে লেখা হয়েছিল।
জোনাথন লেফলার

1

xargs নিউলাইনগুলি পাশাপাশি গ্রাস করে (তবে একটি চূড়ান্ত ট্রেলিং নিউলাইন যোগ করে):

xargs < file.txt | tr -d ' '

1

আপনি কেবলমাত্র অঙ্কগুলি এবং সেমিকোলনগুলি রাখতে চান তা ধরে নিলে, নিম্নলিখিত কোনও বড় এনকোডিং সমস্যা নেই তা ধরে নিয়ে কৌশলটি করা উচিত, যদিও এটি খুব শেষ "নিউলাইন" কেও সরিয়ে ফেলবে:

$ tr -cd ";0-9"

আপনি অন্যান্য অক্ষর অন্তর্ভুক্ত করতে উপরেরটি সহজেই সংশোধন করতে পারেন, যেমন আপনি যদি দশমিক পয়েন্ট, কমা, ইত্যাদি ধরে রাখতে চান retain


1

জিডিট টেক্সট এডিটর ব্যবহার করে (3.18.3)

  1. অনুসন্ধান ক্লিক করুন
  2. অনুসন্ধান এবং প্রতিস্থাপন ক্লিক করুন ...
  3. লিখুন \n\sবা খুঁজুন ক্ষেত্র
  4. ত্যাগ দিয়ে প্রতিস্থাপন করুন (কিছুই না) ফাঁকা
  5. নিয়মিত অভিব্যক্তি বাক্সটি পরীক্ষা করুন
  6. ক্লিক করুন খুঁজুন বোতাম

দ্রষ্টব্য: এটি ওপির মূল, year বছরের পুরাতন সমস্যার সঠিকভাবে সমাধান করে না তবে কিছু নুব লিনাক্স ব্যবহারকারীকে (আমার মতো) যারা "এসইয়ের লাইনে আমার পাঠ্যটি কীভাবে পাবেন" অনুরূপ এসই থেকে এখানে তাদের পথ খুঁজে পেতে সহায়তা করবে? ।


1

আজ একইরকম ঘটনা ঘটছিল, ভিএম বা এনভিমে অত্যন্ত সহজ, আপনি gJলাইনে যোগদানের জন্য ব্যবহার করতে পারেন । আপনার ব্যবহারের ক্ষেত্রে, ঠিক আছে

99gJ

এটি আপনার সমস্ত 99 লাইনে যোগ দেবে। আপনি যোগ করতে 99কত লাইন অনুযায়ী প্রয়োজন হিসাবে সংখ্যাটি সামঞ্জস্য করতে পারেন । শুধু যোগদানের তাহলে 1 লাইন, তারপর শুধুমাত্র gJভাল যথেষ্ট।


0

আমি এটি করণীয়, যেমন দিয়ে করব

awk '/[0-9]+/ { a = a $0 ";" } END { print a }' file.txt

(একটি অসুবিধা হ'ল একটি স্মৃতিতে "সঞ্চিত")।

সম্পাদনা

প্রিন্টফের কথা ভুলে গেছেন! তাই ও

awk '/[0-9]+/ { printf "%s;", $0 }' file.txt

বা সম্ভবত আরও ভাল, এটি ইতিমধ্যে awk ব্যবহার করে অন্যান্য উত্তরগুলিতে দেওয়া হয়েছিল।


0

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

xsel -b -o | tr -d '\n' | tr -s ' ' | xsel -b -i
  • xsel -b -o আমার ক্লিপবোর্ড পড়ে

  • tr -d '\n' নতুন লাইন সরিয়ে দেয়

  • tr -s ' ' পুনরাবৃত্ত স্পেসগুলি সরিয়ে দেয়

  • xsel -b -i এটিকে আমার ক্লিপবোর্ডে ঠেলে দেয়

এর পরে আমি ক্লিপবোর্ডের নতুন সামগ্রীগুলি কোনও কনসোলে বা যাই হোক না কেন অনলাইনে পেস্ট করব।


0

আপনি সবচেয়ে স্পষ্ট এবং দ্রুত উত্তরটি অনুপস্থিত রয়েছেন বিশেষত যখন আপনাকে কিছু অদ্ভুত শব্দ-মোড়ানো ঠিক করার জন্য জিইউআইতে এটি করা দরকার।

  • খোলা gedit

  • তারপরে Ctrl+ H, তারপরে Findপাঠ্যবক্সে \nএবং Replace withএকটি ফাঁকা জায়গায় রেখে চেকবক্স Regular expressionএবং ভয়েলা পূরণ করুন ।


0

ফাইলের শেষে ট্রেলিং করা নতুন লাইনটিও সরাতে

python -c "s=open('filename','r').read();open('filename', 'w').write(s.replace('\n',''))"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.