উবুন্টুতে নোটপ্যাড (উইন্ডোজ) এ তৈরি স্ক্রিপ্ট চালানো


14

আমি উইন্ডোজে একটি নোটপ্যাড ফাইল তৈরি করেছি এবং এটি উবুন্টুতে অনুলিপি করেছি। ফাইলটিতে কিছু iptables নিয়ম রয়েছে। ফাইলটি ব্যবহার করে নির্বাহযোগ্য করে তোলা chmod +xএবং এটি কার্যকর করার পরে, এটি কার্যকর হয়নি।

যাইহোক, যখন আমি একটি উবুন্টু ( gedit ) ফাইল তৈরি করেছি এবং নোটপ্যাড ফাইল থেকে একই বিষয়বস্তু অনুলিপি করেছিলাম, এটি কার্যকর করে দিয়েছি এবং এটি চালিয়েছি, এটি কার্যকর হয়েছিল worked

উবুন্টুতে নোটপ্যাড ফাইলটি চালানোর জন্য আমার কী করা উচিত?


উত্তর:


20

উইন্ডোজ এবং লিনাক্সের বিভিন্ন-শেষ-লাইন চিহ্ন রয়েছে।

আপনি dos2unixযে ইউটিলিটিটি এটি স্থির করে ইনস্টল করতে পারেন :

sudo apt-get install dos2unix

এভাবে চালান:

dos2unix -n winfile.txt linuxfile.txt

রয়েছে unix2dosইউটিলিটি।

উইন্ডোজ থেকে লিনাক্স রূপান্তরটি কোনও বিশেষ সফ্টওয়্যার ইনস্টল না করেও করা যেতে পারে

 tr -d '\r' < winfile.txt > linuxfile.txt

দ্রষ্টব্য: ইনপুট এবং আউটপুট ফাইলগুলি অবশ্যই আলাদা হতে হবে।

একটি সেড সংস্করণ ফাইল "স্থানে" সম্পাদনা করবে:

 sed  -i 's/\r//g' file.txt

অথবা অন্য কোনও ফাইলে লিখুন:

 sed 's/\r//g' winfile.txt > linuxfile.txt

আপনার আদেশটি ভুল। dos2unix winfile.txt linuxfile.txtউভয় ফাইল রূপান্তর করার চেষ্টা করে। এই আদেশটি ব্যবহার করুনdos2unix -n winfile.txt linuxfile.txt
এবি

@ এএবি স্থির। তুমি ঠিক. তারা ইনপুট পরামিতি পরিবর্তন করেছে। আমি এটি দীর্ঘদিন ব্যবহার করিনি।
পাইলট

যাইহোক, ভাল উত্তর +1
এবি

সবাইকে অনেক ধন্যবাদ। যেহেতু আমার কাছে নোটপ্যাড ++ নেই এবং আমি একটি নতুন প্যাকেজ (ডস 2 ইউনিক্স) ইনস্টল করতে চাইনি, তাই আমি "টিআর" কমান্ডটি পছন্দ করেছি। আমি এটা চেস্টা করেছিলাম এবং এটা কাজও করেছিল. তবে দয়া করে নোট করুন যে উত্স এবং গন্তব্য ফাইলগুলি পৃথক হতে হবে।
অ্যালবার্ট

@ অ্যালবার্ট উত্তরে যুক্ত হয়েছে। ফাইলের নামটি রাখার জন্য এটি অন্য কোনও উপায়ে করা যেতে পারে তবে আইএমএইচও-র প্রচেষ্টা মূল্যহীন নয়। এবং ফাইলগুলি মিশ্রিত না করা যাই হোক না কেন বিভিন্ন নাম থাকা ভাল।
পাইলট

6

উইন্ডোজে, আপনাকে নোটপ্যাড ++ এ ইউনিক্সে এন্ড অফ লাইন (EOL) ফর্ম্যাটটি পরিবর্তন করতে হবে:

এখানে চিত্র বর্ণনা লিখুন

এইভাবে এটি উবুন্টুতেও কাজ করবে।


1
এইভাবে এটি কেবল উবুন্টু / লিনাক্সে কাজ করবে । নোটপ্যাড ++ এর মতো বিশেষ অগ্রণী সম্পাদকরা লাইন সমাপ্তির প্রকারটি সনাক্ত করতে পারে এবং যেকোন উপায়ে এটি সঠিকভাবে প্রদর্শন করতে পারে, সাধারণ উইন্ডোজ নোটপ্যাড ইত্যাদি তা মানবে না।
বাইট কমান্ডার

@ বাইটকমন্ডার হ্যাঁ, তবে তিনি এটি উবুন্টুতে চালিত করতে চান।

1
হ্যা অবশ্যই. আমি জানি এবং তাই upvated। আমি কেবল এই সত্যটি পরিষ্কার করতে চেয়েছিলাম, যাতে ফাইল এখন সাধারণ নোটপ্যাডে অদ্ভুত লাগলে কেউ অবাক হয় না।
বাইট কমান্ডার

2
আমি মনে করি যে ওপিটি উইন্ডোজের বিল্ট-ইন প্রোগ্রাম নোটপ্যাডের উল্লেখ করছে , তৃতীয় পক্ষের প্রোগ্রাম নোটপ্যাড ++ নয় । আপনি যদি পরামর্শ দেন যে নোডিপ্যাড ++ এই কারণে উইন্ডোজে ইনস্টল করা উচিত, আপনি কি আপনার উত্তরে আরও স্পষ্ট করে তুলতে পারেন? এখনই যেমন দাঁড়িয়ে আছে, আমার মনে হয় এটি বিভ্রান্তিকর।
পিটার মর্টেনসেন

@ পিটারমোরটেনসেন আমি আবার তাঁর প্রশ্নটি পড়েছি, আমি মনে করি না যে আমি ভুল বুঝেছি এবং আমার উত্তরই তার সমস্যার অন্যতম ভাল সমাধান।

2

উইন্ডোজ লাইন বিরতির জন্য সিআর + এলএফ ব্যবহার করে। লিনাক্স / ইউনিক্সে আপনার এলএফ প্রয়োজন। সুতরাং আপনাকে আপনার স্ক্রিপ্টে সিআর + এলএফকে এলএফতে প্রতিস্থাপন করতে হবে:

ইনস্টল করুন dos2unix

sudo apt-get install dos2unix

এবং এর মাধ্যমে আপনার স্ক্রিপ্টটি সংশোধন করুন

dos2unix <your_script_file>

বা মাধ্যমে

dos2unix -n <your_script_file> <out_file>

আপনার যদি আলাদা আউটপুট ফাইলের প্রয়োজন হয়

আরও তথ্য এখানে


থেকে man dos2unix

NAME
       dos2unix - DOS/Mac to Unix and vice versa text file format converter

SYNOPSIS
           dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]
           unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]

1

আমি উইন্ডোজে সাইগউইন ব্যবহার করি।
Vi দিয়ে ফাইলটি খুলুন। তারপরে প্রবেশ করুন

:set ff=unix<enter> followed by 
:wq<enter> 

লাইন অক্ষরগুলির ইউনিক্স শেষ দিয়ে ফাইলটি সংরক্ষণ করবে।


0

আপনি প্রাক্তন মোডে ভিম ব্যবহার করতে পারেন:

ex -bsc '%s/\r//|x' file
  1. % সমস্ত লাইন নির্বাচন করুন

  2. s বিকল্প

  3. \r গাড়ি ফেরত

  4. x সংরক্ষণ করেন এবং বন্ধ করেন

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