আমি এটি থেকে কীভাবে পেতে পারি:
randomcollege-nt\user90
এটি:
user90
ব্যবহার করছেন sed?
sedএখানে যান: grymoire.com/Unix/Sed.html
আমি এটি থেকে কীভাবে পেতে পারি:
randomcollege-nt\user90
এটি:
user90
ব্যবহার করছেন sed?
sedএখানে যান: grymoire.com/Unix/Sed.html
উত্তর:
আমি grepসন্ধান করতে একটি সাধারণ ব্যবহার করব user90:
$ echo "randomcollege-nt\user90" | grep -o user90
user90
যদি ব্যবহারকারী 90 ধ্রুব না হয় তবে এই আদেশটি পছন্দ করুন:
$ echo "randomcollege-nt\user90" | grep -oP '(?<=randomcollege-nt\\)\w+'
user90
পরিশেষে sedফাইলটি সম্পাদনা করতে ব্যবহার করে:
$ sed -ri 's/randomcollege-nt\\(user[0-9]+)/\1/' my_file
বা সম্ভাব্য সমস্ত ব্যবহারকারীর অ্যাকাউন্টের সাথে মেলে:
$ sed -ri 's/randomcollege-nt\\(\w+)/\1/' my_file
grep -Fকেবল পুরো স্ট্রিং থাকলে এটি প্রদর্শিত হবে ।
আপনি domain\usernameউইন্ডো থেকে সম্ভবত স্ট্রিং থেকে ব্যবহারকারীর নামটি বের করতে কিছু পাঠ্য পার্স করছেন । উপরের উত্তরগুলির বেশিরভাগটি কেবল আপনার নির্দিষ্ট উদাহরণের স্ট্রিংকে সম্বোধন করছে।
এটি করার সর্বোত্তম উপায় হ'ল সিডে রেজেেক্স ব্যবহার করে যা কিছু পরে আসবে তা বের করতে \। আপনি এটি কীভাবে করবেন তা এখানে:
sed 's|.*\\\(.*\)|\1|'
এটি .*ব্যাকস্ল্যাশ না হওয়া অবধি সমস্ত কিছু ( ) এখানে মিলবে (এখানে, আমরা এটি থেকে পালিয়ে যাচ্ছি, সুতরাং এটি \\), তারপরে ব্যাকস্ল্যাশ ( .*) এর পরে সমস্ত কিছু মেলে তবে এটি একটি ক্যাপচার গ্রুপ তৈরি করে (অর্থাত্ এটি চারপাশে বন্ধনী আবরণ করুন, তবে আমাদের পালাতে হবে) তাদের, তাই \(.*\))। এখন আমাদের \ক্যাপচার গ্রুপ হিসাবে স্ট্রিংয়ের পরে যা কিছু আসে তাই আমরা এর সাথে উল্লেখ করে মুদ্রণ করি \1।
আপনি উপরের sedকমান্ডটি কোনও ডোমেন নাম দিয়ে ব্যবহার করতে পারেন , অগত্যা নয় randomcollege-nt।
$ echo "randomcollege-nt\user90" | sed 's|.*\\\(.*\)|\1|'
user90
$ echo "domain\username" | sed 's|.*\\\(.*\)|\1|'
username
$ echo "anydomainname\roboman1723" | sed 's|.*\\\(.*\)|\1|'
roboman1723
আরেকটি sed:
$ echo "randomcollege-nt\user90" | LC_ALL=C sed -e 's/.*\\//'
user90
বা পজিকলি:
$ a='randomcollege-nt\user90'
$ printf '%s\n' "${a##*\\}"
user90
shবৈশিষ্ট্য। pubs.opengroup.org/onlinepubs/009604599/utilities/…
আমি জানি আপনি সেড ব্যবহার করতে চান তবে আমি অন্যরকম কিছু ব্যবহার করব ...
echo "randomcollege-nt\user90" | cut -d'\' -f2
এটাই কি প্রশ্ন?
$ echo randomcollege-nt\user90| sed -e s,randomcollege-nt\,,
user90
যদি স্টিং র্যান্ডমকলেজ-এনটি কনটেন্ট না হয় তবে উপরের / নীচে অ্যাড্ক কমান্ড ব্যবহার করুন।
/user90নাuser90
বরং আপনি "ইউজার 90" ফিল্টার করতে 'অজক' ব্যবহার করুন:
echo "randomcollege-nt\user90" | awk -F\\ {'print $2'}
এই সাধারণ গ্রেপ কমান্ডটি কাজটি করবে,
$ echo 'randomcollege-nt\user90' | grep -oP '[^\\]*$'
user90
সঙ্গে sed একটি নির্দিষ্ট অক্ষর সামনে একটি স্ট্রিং ডিলিট সবকিছু (ডবল বন্ধনী [নির্দিষ্ট গৃহস্থালির কাজ] এতে সংজ্ঞায়িত)।
echo "randomcollege-nt\user90" | sed 's/.*[\]//'
মানে সব প্রতিস্থাপন (.*[\] আগে ) অক্ষরকে \সাদা স্থানের অক্ষর ( //) দিয়ে
আপনার যদি কোনও ফাইল থাকে এবং কমান্ড ব্যবহার করে -iফ্ল্যাগটি প্রতিস্থাপন করতে sedচান তবে:
sed -i 's/.*[\]//' /path/to/FileName
মূল প্রশ্নটির জন্য জিজ্ঞাসা করা হয়েছিল sed, তবে আমি দেখতে পাচ্ছি যে বিকল্পগুলি এখানে জনপ্রিয়।
আপনি যদি ব্যাশ ব্যবহার করছেন তবে প্যারামিটারের বিস্তারটি সবচেয়ে সহজ:
ORIGIN='randomcollege-nt\user90'
echo "${ORIGIN#*\\}"
আপনি যদি সম্ভাব্যভাবে একাধিক ব্যাকস্ল্যাশ আশা করে থাকেন তবে হ্যাশ লক্ষণগুলি দ্বিগুণ করুন:
echo "${ORIGIN##*\\}"
আরও তথ্যের জন্য, man bashএবং অনুসন্ধান করুন Parameter Expansion।
যদি কেউ # server_tokens off;অটো ডি-অপ্সের সাহায্যে স্বয়ংক্রিয়ভাবে nginx থেকে একটি মন্তব্য সরানোর চেষ্টা করছে :
sudo sed -ri 's/#\s(server_tokens off;)/\1/' /etc/nginx/nginx.conf।
উবুন্টু ১.0.০৪ এলটিএস-এ এনজিএনএক্স / 1.12.1 এর জন্য পরীক্ষিত এবং কাজ করছে। এখানে সার্ভার টোকেন বন্ধ করে এনজিআইএনএক্স লক ডাউন সম্পর্কিত সম্পর্কিত উত্তর ।
man the_command_nameকমান্ডের জন্য একটি সহায়ক নির্দেশিকা ম্যানুয়াল পাবেন। আপনি www.google.com এ গিয়ে "কমান্ড_নাম টিউটোরিয়াল" টাইপ করতে পারেন এবং আপনি প্রচুর ধাপে পাশের গাইড পাবেন।