লিনাক্সে লাইন ফিডে সিআরএলএফ রূপান্তর করুন


34

লিনাক্সের ফাইলগুলিতে সিআরএলএফ এর লাইন ফিডে রূপান্তর করার সর্বোত্তম উপায় কী ?

আমি সেড কমান্ড দেখেছি , তবে এর চেয়ে সহজ কিছু আছে কি?


4
ডুপ: সুপারউজার . com/উকশনস / 38744/… । গৃহীত উত্তরে প্রদত্ত লিঙ্কটি অন্যদের মধ্যে ডস 2 ইউনিক্স, পার্ল এবং ভিআই বিকল্পগুলি কভার করে।
নাগুল

2
এর ইতিমধ্যে আরও ভাল উত্তর রয়েছে (সুতরাং এর মধ্যে
একটিরও

উত্তর:


40

এই আদেশটি ব্যবহার করুন:

fromdos yourtextfile

অন্যান্য উপায়ে:

todos yourtextfile

এই কমান্ডগুলি টোফ্রোডস প্যাকেজটিতে পাওয়া গেছে (বেশিরভাগ সাম্প্রতিক বিতরণে), যা একই নামের পুরানো ইউনিক্স সরঞ্জামগুলির নকল করে এমন দুটি র‍্যাপার্স ইউনিক্স 2 ডস এবং ডস 2 ইউনিক্স সরবরাহ করে।


2
+1 বর্তমানে শীর্ষে-ভোট প্রাপ্ত "ডস 2 ইউনিক্স ব্যবহার করুন" উত্তরের চেয়ে অনেক বেশি দরকারী।
জোনিক

1
হ্যাঁ, এমনকি আমি এটিকে ভোট দিচ্ছি। আমার একটি ড্রাইভ বাই পরামর্শ ছিল।
রায়ান থম্পসন

আপনি কীভাবে এটি পুনরাবৃত্তি করতে হয় তা বললে আমি অতিরিক্ত বোনাস দেব। বর্তমানে কেবল ওয়াইল্ডকার্ড নিয়ে কাজ করে।
sorin

2
@ সোরিনসবারনিয়া: এরকম কিছুfind . -name '*.txt' -print0 | xargs -null fromdos
বিএসপিপিয়ার

@ জোনিক এটি "অনেক বেশি উপকারী" করে তোলে? গুরুতর প্রশ্ন
অ্যান্ড্রুটবার

24

ব্যবহার dos2unix

ডস 2 ইউনিক্স - ডক্স / ম্যাক থেকে ইউনিক্স টেক্সট ফাইল ফর্ম্যাট রূপান্তরকারী

dos2unix  [options] [-c convmode] [-o file ...] [-n infile outfile ...]

Options:
          [-hkqV] [--help] [--keepdate] [--quiet] [--version]

2
এবং unix2dos অন্যভাবে রাউন্ডের জন্য।
কোয়াকোট কোয়েক্সোট

কোয়াক, আপনি আমাকে অনুসরণ করছেন? সমস্ত উত্সাহ সহ আমি এটির প্রশংসা করি না Not
রায়ান থম্পসন

1
বাবু, আমি ack কোক। "~" "হিসাবে" হিসাবে উচ্চারণ করুন। :) তবে না, আপনাকে অনুসরণ করছে না, আমি আপনাকে ঘন ঘন দৌড়াদৌড়ি করি।
কোয়াকোট কোয়েক্সোট

1
আপনার লিনাক্স সিস্টেমের জন্য এই ইউটিলিটিটি কীভাবে পাবেন সে সম্পর্কে বিস্তারিত আলোচনা করুন। কমপক্ষে উবুন্টু তে এটি ডিফল্টরূপে ইনস্টল না (কিন্তু প্যাকেজ tofrodos ইনস্টল করার মাধ্যমে আপনি খুব অনুরূপ কিছু পাবেন: packages.ubuntu.com/jaunty/tofrodos )।
জোনিক

20

আমি পার্ল পছন্দ :

perl -lne 's/\r//g; print' winfile.txt > unixfile.txt

তবে এটি আমার ব্যবহারগুলির পক্ষে উপযুক্ত এবং এটি আমার মনে রাখা খুব সহজ। সমস্ত সিস্টেমে ডস 2 ইউনিক্স কমান্ড নেই, তবে বেশিরভাগ ক্ষেত্রে আমি কাজ করি পার্ল ইন্টারপ্রেটার।

আরেকটি হল recode , dos2unix এবং iconv জন্য একটি শক্তিশালী প্রতিস্থাপন; এটি দেবিয়ান সংগ্রহস্থলের "পুনর্বিবেচনা" প্যাকেজে পাওয়া যায়:

recode ibmpc..lat1 winfile.txt   # dos2unix
recode lat1..ibmpc unixfile.txt  # unix2dos

জন্য awk ভক্ত:

awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt

... এবং সেড :

sed 's/\r$//' winfile.txt > unixfile.txt

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

মস্তিষ্কে ডস 2 ইউনিক্স !

,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.

এটি লিখতে তাঁর জীবনের এক ঘন্টা নষ্ট করার জন্য জেকে ধন্যবাদ!


1
(বিড়ালের অকেজো ব্যবহার এবং) পার্ল সেডের মতোই জটিল ... সুতরাং আপনি সত্যিকার অর্থেই প্রশ্নের উত্তর দিচ্ছেন না বরং খ্যাতি সংগ্রহ করছেন :)
আকিরা

2
"সেরা উপায়" বিষয়গত। এটি আমার পক্ষে সবচেয়ে ভাল কাজ করে (আমি সেডের চেয়ে পার্লের সাথে আরও বেশি স্বাচ্ছন্দ্য বোধ করি)। আমি প্রতিশ্রুতি করি নি যে এটি আপনার পক্ষে সবচেয়ে ভাল কাজ করবে।
কোয়াকোট কোয়েসোট

@ ককিরা: একটি প্রশ্নের একাধিক বৈধ উত্তর থাকতে পারে। আমি মাঝে মাঝে বেশিরভাগ ক্ষেত্রে অন্যান্য পরিবর্তনের সাথেও এই পদ্ধতিটি ব্যবহার করি, তাই এটি অবশ্যই একটি বৈধ উত্তর; তবে বেশিরভাগ পরিস্থিতিতে অবশ্যই ব্যবহারের উত্তর "ডস 2 ইউনিক্স"। সুতরাং আমি মনে করি রেটিংগুলি ঠিক আছে।
পুনরায় পোস্টার

@ ককিরা: আপনি যদি এটি সহজ মনে করেন তবে দয়া করে একটি উত্তর হিসাবে পোস্ট করুন এবং আমাদের বাকীটি আলোকিত করুন।
কোয়াকোট কোয়েসোট

@। কোয়াট: এটি মূল বিষয়: এটি সহজ নয়। আপনার পার্ল উত্তরের জন্য একই। u2d বা fromdos / todos সঠিক উত্তর কারণ এগুলি অন্য কোনও প্রোগ্রামিং ভাষায় প্রকাশিত কোনও স্টাফের চেয়ে সহজ
আকির 11

9

আমি বাশের উপর এটি করি :

cat cr_stuffed.file | tr -d \r > no_more_crs.file

সুন্দর। আমি আজ ট্রির আরেকটি উল্লেখ দেখেছি। এটি একটি প্রোগ্রাম যে খুব প্রায়ই উল্লেখ করা হয় না?
কোয়াকোটা কোটসোট

7

আমি মনে করি আপনি এটিও ব্যবহার করতে পারবেন tr(যদিও আমার কাছে মজাদার বিন্যাসের ফাইল নেই যা চেষ্টা করে দেখুন):

tr -d '\r' < file1 > file2


4

আমি একটি খুব সহজ উপায় খুঁজে পেয়েছি… ন্যানো দিয়ে ফাইল খুলুন: ## ন্যানো file.txt

সংরক্ষণের জন্য Ctrl + O টিপুন, তবে এন্টার টিপানোর আগে: বেটউইন ডস এবং ইউনিক্স / লিনাক্স লাইন-এন্ডিংস টগল করতে Alt + D বা: Alt + M বেটউইন ম্যাক এবং ইউনিক্স / লিনাক্স লাইন-এন্ডিং টগল করতে তারপরে এন্টার টিপুন এবং সংরক্ষণ করুন ছাড়তে Ctrl + X quit


1
কোন টগল সেটিংস ওপিতে অনুরোধ করা আচরণটির প্রতিলিপি তৈরি করবে তা পরিষ্কার করতে আপনি নিজের উত্তর সম্পাদনা করতে পারেন?
বুর্গি

ওপি টগল করতে চায় বন্ধ ডস লাইন শেষা w শ, তাই Alt+d। কখনও কখনও Alt টার্মিনাল প্রোগ্রাম দ্বারা আটকে যায়, আপনি esc+dপরিবর্তে ব্যবহার করতে পারেন ।
স্পিনআপ

1
প্রচুর ন্যানো শর্টকাটগুলি শিফ্ট টিপে কাজ করে যা প্রায়শই টার্মিনাল বাধা রোধ করে, তাই 'আল্ট-শিফট-ডি'ও কাজ করে।
mwfearnley

3

আমি Vim পছন্দ করি এবং :set fileformat=unix। দ্রুততম না হলেও এটি আমার পূর্বরূপ দেয়। এটি বিশেষত মিশ্র প্রান্তযুক্ত কোনও ফাইলের ক্ষেত্রে দরকারী useful


1

আপনি যদি কোনও জিইউআই পদ্ধতি চান, কেট পাঠ্য সম্পাদকটি চেষ্টা করুন (অন্যান্য উন্নত পাঠ্য সম্পাদকরাও এটি পরিচালনা করতে সক্ষম হতে পারেন)। খুলুন খোঁজ / প্রতিস্থাপন করা কথোপকথন ( Ctrl+ + R), এবং প্রতিস্থাপন \r\nসঙ্গে \n। (এনবি: আপনাকে ড্রপ ডাউন থেকে "নিয়মিত অভিব্যক্তি" চয়ন করতে হবে এবং অপশনগুলি থেকে "কেবলমাত্র নির্বাচন" নির্বাচন না করা হবে need)

সম্পাদনা করুন: অথবা, যদি আপনি কেবল ইউনিক্স ফর্ম্যাটে রূপান্তর করতে চান, তাহলে মেনু বিকল্প ব্যবহার Tools> End of Line> Unix


এখানে জেডিট-এর মতো পাঠ্য সম্পাদক রয়েছে যা এই রূপান্তরগুলি স্বয়ংক্রিয়ভাবে করতে পারে - আপনি যদি ইউনিক্স, উইন্ডোজ বা ম্যাক লাইন বিভাজক চান তবে কেবল এটিই বলুন।
জোনিক 10

প্রকৃতপক্ষে, কেট সেগুলি সরঞ্জামগুলি> লাইনটির শেষের মেনুটির মাধ্যমেও করতে পারে । প্রশ্নটি ঠিক যেমনটি বলা হয়েছিল ঠিক ঠিক তেমন উত্তর দেওয়ার চেয়ে আমার আরও দীর্ঘস্থায়ীভাবে চিন্তা করা উচিত ছিল - তবে আপনি যদি জানেন যে আপনি বিশেষত রূপান্তর \r\nকরতে চান \nতবে অনুসন্ধান / প্রতিস্থাপন ব্যবহার করে কোন ওএস কোন লাইনটি শেষ করে তা মনে করার চেয়ে সহজ। ;)
অসন্তুষ্ট গোয়াট

1

এটিকে ডস 2 ইউনিক্স.পি পাইথন স্ক্রিপ্টে আটকান ।

#!/usr/bin/env python
"""\
convert dos linefeeds (crlf) to unix (lf)
usage: dos2unix.py <input> <output>
"""
import sys

if len(sys.argv[1:]) != 2:
  sys.exit(__doc__)

content = ''
outsize = 0
with open(sys.argv[1], 'rb') as infile:
  content = infile.read()
with open(sys.argv[2], 'wb') as output:
  for line in content.splitlines():
    outsize += len(line) + 1
    output.write(line + '\n')

print("Done. Saved %s bytes." % (len(content)-outsize))

পাইথন ইনস্টল থাকা যে কোনও প্ল্যাটফর্মে কাজ করা উচিত। উন্মুক্ত এলাকা.


1

CR LFঅজানাLF ব্যবহার করতে :

awk -v RS='\r?\n' 1
command | awk -v RS='\r?\n' 1
awk -v RS='\r?\n' 1 filename

ব্যবহারের উদাহরণ:

echo -e 'foo\nbar\r\nbaz' | awk -v RS='\r?\n' 1 | hexdump -C

ব্যাখ্যা:

-v RS='\r?\n'পরিবর্তনশীল আরএস (সেট করে ইনপুট ecord গুলি করার eparator) \r?\n, যার অর্থ ইনপুট এলএফ দ্বারা পৃথক লাইন দ্বারা লাইন (পড়া হয় \n) যা (মে ?) সি আর পূর্বে করা ( \r)।

1স্ক্রিপ্টটি হ'ল একটি স্ক্রিপ্ট থাকে condition { action }। এই ক্ষেত্রে, 1শর্তটি যা সত্যকে মূল্যায়ন করে। ক্রিয়াটি বাদ দেওয়া হয়েছে, সুতরাং ডিফল্ট ক্রিয়াটি কার্যকর করা হয় যার অর্থ বর্তমান লাইনটি মুদ্রণ করুন (যা এছাড়াও {print $0}বা সরলভাবে লেখা যেতে পারে {print}) print


LFটু CR LF: আউটপুটটির লাইন প্রান্তটি পরিবর্তন করতে আপনি ভেরিয়েবলটি সেট করতে পারেন ORS( o utput r ecord s eparator)। উদাহরণ:

echo -e 'foo\nbar\r\nbaz' | awk -v RS='\r?\n' -v ORS='\r\n' 1 | hexdump -C

0

উইন্ডোজ সিস্টেম থেকে ইউনিক্স সিস্টেমে জরুরী ফাইল স্থানান্তর করার জন্য প্রয়োজনীয় ফাইলগুলির জন্য আমি এই স্ক্রিপ্টটি ব্যবহার করেছি।

 find . -type f | xargs file | grep CRLF | cut -d: -f1 | xargs dos2unix

find . -type f

আপনি যে ডিরেক্টরিটি থেকে কমান্ডটি চালাচ্ছেন তার মধ্যে পুনরাবৃত্তভাবে সমস্ত ফাইল সন্ধান করে

xargs file

ফাইল বিশ্লেষণ পেতে ফাইল প্রোগ্রামে এটি পাস করুন।

grep CRLF

আমরা কেবল ফাইলের আউটপুট চাই যা CRLF দেখায়।

cut -d: -f1

রঙ পর্যন্ত আউটপুট পান। বাকীটি ফেলে দিন। আমাদের এখন কেবল একটি ফাইল নাম থাকা উচিত

xargs dos2unix

প্রোগ্রাম ফাইলের নাম পাশ dos2unix ব্যবহার xargs

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