ম্যাক ওএস 10.10+ এ জিএনইউ সেড কীভাবে ব্যবহার করবেন, 'ব্রিউ ইনস্টল - ডিফল্ট-নামগুলি' আর সমর্থন করে না


98

ম্যাক ওএস 10.10.3 এর অধীনে, আমি টাইপ করে gnu-sed ইনস্টল করেছি:

brew install gnu-sed --default-names

আমি যখন এটি আবার টাইপ করি, আমি বার্তাটি পাই:

gnu-sed-4.2.2 ইতিমধ্যে ইনস্টল

তবে, সিস্টেমটি পুনরায় চালু করার পরেও এবং টার্মিনালটি পুনরায় চালু করার পরেও আমি সেডের GNU সংস্করণটি ব্যবহার করতে পারি না। উদাহরণ স্বরূপ:

echo a | sed ’s_A_X_i’

ফেরত: প্রতিস্থাপন কমান্ড 'আমি' খারাপ পতাকা

জিএনইউ সংস্করণটি কাজ করতে আমার কী করা উচিত? এখানে আমার $ PATH ভেরিয়েবলের পথ রয়েছে।

/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin 

আমি দুঃখিত যদি আমার প্রশ্নটি সুস্পষ্ট মনে হয় তবে আমি নিজে থেকেই শেল স্ক্রিপ্টিং শিখছি এবং ইউএনআইএক্স প্রোগ্রামগুলি কীভাবে ইনস্টল করা হয়েছে তা এখনও বেশ বুঝতে পারছি না। কোনও ক্ষতি বা অপ্রয়োজনীয় বিশৃঙ্খলা সৃষ্টি না করে আমার ম্যাকের উপর জিএনইউ অনুমানকারী কমান্ডগুলি (এই ক্ষেত্রে সেড, তবে শীঘ্রই আমি অন্যদেরও দরকার) ব্যবহার করার জন্য যে কোনও সাহায্যের প্রশংসা হবে।


4
brewজিএনইউ কোথায় ইনস্টল করেছেন sed? যে ডিরেক্টরি আপনার উপর PATH? টাইপ করলে কী পাবেন sed --version? (বিএসডি sedঅভিযোগ করবে; জিএনইউ sedএর সংস্করণ তথ্য জানাবে।) brewআপনার পাথের আগে ডিরেক্টরি না থাকলে /usr/binবা আপনি জিএনইউতে পরম পথটি ব্যবহার করতে শিখেন sed, আপনি জিএনইউ চালাবেন না sed। উদ্ধৃতিগুলির সাথেও সাবধানতা অবলম্বন করুন। একটি শব্দ-প্রক্রিয়াকরণ উদ্ধৃতি, বিপরীত '
জোনাথন লেফলার 16

উত্তর:


114

দ্রষ্টব্য (2019):

--with-default-namesবিকল্প মুছে জানুয়ারী 2019 সাল থেকে, তাই এখন বিকল্প আর পাওয়া যায় না।

ইনস্টল করার সময়, হোমব্রু কীভাবে উপায়ে উপস্থাপন করতে হবে সে সম্পর্কে নির্দেশ দেয়, যদি কেউ gউপসর্গ ব্যতীত সেড ব্যবহার করতে চায় ।


আপনি --with-default-namesবিকল্পটি ছাড়াই ইতিমধ্যে gnu-sed ইনস্টল করেছেন ।

  • সঙ্গে --with-default-namesবিকল্প এটা ইনস্টল sedকরার/usr/local/bin/
  • যে বিকল্প ছাড়া এটি ইনস্টল gsed

সুতরাং আপনার ক্ষেত্রে আপনি যা করবেন তা হ'ল:

$ brew uninstall gnu-sed
$ brew install gnu-sed --with-default-names

প্রয়োজনে পথ আপডেট করুন ...

$ echo $PATH | grep -q '/usr/local/bin'; [ $? -ne 0 ] && export PATH=/usr/local/bin:$PATH
$ echo a | sed 's_A_X_i'

বা gsedঅন্যদের পরামর্শ মতো ব্যবহার করুন ।


8
- -ইন-ডিফল্ট-নাম বিকল্পটি আর সমর্থিত নয়
আমোল

51

আপনি যখন sedম্যাক ওএস এক্স এর জন্য জিএনইউ সংস্করণটি ব্যবহার করেন:

$ brew install gnu-sed

আপনি যে প্রোগ্রামটি ব্যবহার করেন তা হ'ল gsed

উদাহরণস্বরূপ:

$ echo "Calimero is a little chicken" > test
$ cat test
Calimero is a little chicken
$ gsed -i "s/little/big/g" test
$ cat test
Calimero is a big chicken

এছাড়াও, ম্যাক ওএস এক্সে জিএনইউ কমান্ড সরঞ্জামগুলির ব্যবহারের প্রশংসা করতে, লিনাক্স থেকে সরঞ্জামগুলি পেতে এখানে একটি দুর্দান্ত ব্লগ পোস্ট রয়েছে:

ম্যাক ওএস / ওএস এক্সে জিএনইউ কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করুন এবং ব্যবহার করুন


20

sedOS X এর সাথে যে জাহাজ রয়েছে /usr/bin

sedযে homebrewইনস্টল হয় /usr/local/bin

যদি আপনি এটি ব্যবহার করতে পছন্দ করেন homebrewতবে আপনার কাছে দুটি বিকল্প রয়েছে:

বিকল্প 1

যতবার আপনি ব্যবহার করতে চান homebrew sedটাইপ করুন

/usr/local/bin/sed

বা, পছন্দসই

বিকল্প 2

সরান /usr/local/bin/এগিয়ে (অর্থাত আগে) /usr/binআপনার লগইন প্রোফাইলে আপনার PATH- এ, ভালো

 export PATH=/usr/local/bin:<other places>

আমি এই চেষ্টা করেছি কিন্তু এটা কোন প্রভাব ফেলে না
Alper

16

$ brew install gnu-sed

$ export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"

এই দুটি কমান্ডের সাহায্যে gnu-sed সঠিকভাবে কাজ করে


মনে রাখবেন এটি কেবল বর্তমান টার্মিনাল সেশনের জন্যই কাজ করে
maheshmnj

8

আপনার যদি তাদের সাধারণ নামগুলির সাথে gnu-sed কমান্ডটি ব্যবহার করার দরকার হয় তবে আপনি আপনার বাশার্ক থেকে আপনার রাস্তায় একটি "gnubin" ডিরেক্টরি যুক্ত করতে পারেন। আপনার বাশ বা টার্মিনালে কেবল নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"

2

--with-default-namesউপর Mac OS X এর 10.14.2 আমার জন্য কাজ করে নি তাই আমি নামে একজন সিমবলিক লিঙ্ক নির্মিত sedকরার gsedউচ্চতর$PATH

আমিও নামে একজন সিমবলিক লিঙ্ক নির্মিত sed.1করার gsed.1মধ্যে র manpage উচ্চতর $MANPATHতাই manঅ্যাক্সেস হবে gsedডিফল্ট পরিবর্তে র manpage sedর manpage


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