আমি এটি থেকে কীভাবে পেতে পারি:
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 এ গিয়ে "কমান্ড_নাম টিউটোরিয়াল" টাইপ করতে পারেন এবং আপনি প্রচুর ধাপে পাশের গাইড পাবেন।