আপনি grep
পিসিআরই ( -P
) এর সাথে ব্যবহার করতে পারেন :
grep -Po 'spring.profiles.active=\K[^ ]+' <<<'.....string.....'
spring.profiles.active=
আক্ষরিকভাবে এই স্ট্রিংয়ের \K
সাথে মিলবে, ম্যাচটি বাতিল করে দেবে
[^ ]+
spring.profiles.active=
পরের স্থান পর্যন্ত পছন্দসই অংশ অর্থাৎ অংশ পরে নির্বাচন করবে
একটি ফাইলের জন্য:
grep -Po 'spring.profiles.active=\K[^ ]+' file.txt
উদাহরণ:
% grep -Po 'spring.profiles.active=\K[^ ]+' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256'
qa
sed
অনুরূপ যুক্তি গ্রহণ করবে:
sed -r 's/.*spring.profiles.active=([^ ]+).*/\1/' <<<'.....string.....'
উদাহরণ:
% sed -r 's/.*spring.profiles.active=([^ ]+).*/\1/' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256'
qa
হ্যান্ডলিং ত্রুটি:
আপনার স্ক্রিপ্টে আপনি কেসটি হ্যান্ডেল করতে চাইতে পারেন যেখানে কোনও মিল নেই, অন্যথায় যেখানে আপনার মূল স্ট্রিং থাকে না spring.profiles.active=
। উপরের sed
উদাহরণে, আপনি পুরো মূল স্ট্রিংটি পান, যা সমস্যা তৈরি করতে পারে:
% var="$(sed -r 's/.*spring.profiles.active=([^ ]+).*/\1/' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -XX:MaxPermSize=256')"
% echo $var
00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -XX:MaxPermSize=256
কোনও মিল না থাকলে আপনি যদি খালি স্ট্রিং পেতে -n
পছন্দ করেন তবে sed
কমান্ডের p
বিকল্পটি এবং কমান্ডের বিকল্পটি যুক্ত করুন sed
s
:
% var="$(sed -rn 's/.*spring.profiles.active=([^ ]+).*/\1/p' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -XX:MaxPermSize=256')"
% echo $var
% var="$(sed -rn 's/.*spring.profiles.active=([^ ]+).*/\1/p' <<<'00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256')"
% echo $var
qa
তারপরে আপনি পরীক্ষা করতে পারেন $ var খালি কিনা।