উত্তর:
ব্যবহার করুন getent
প্রক্রিয়াকরণ গোষ্ঠী এবং ব্যবহারকারীর তথ্য জন্য কমান্ড পরিবর্তে নিজে পড়ার /etc/passwd
, /etc/groups
ইত্যাদি সিস্টেম নিজেকে ব্যবহার /etc/nsswitch.conf
যেখানে এটি থেকে তার তথ্য পায়, এবং ফাইল সেটিংস অন্যান্য উত্স মাধ্যমে ওভাররাইড করা যেতে পারে সিদ্ধান্ত নিতে। getent
এই কনফিগারেশন মান্য। getent
ফাইলগুলি একই ফর্ম্যাটে তথ্য উত্স হিসাবে বিবেচনা করেই মুদ্রণ করে, যাতে আপনি আউটপুটকে একইভাবে পার্স করতে পারেন ঠিক একইভাবে /etc/passwd
:
getent group sudo | awk -F: '{printf "Group %s with GID=%d\n", $1, $3}'
মনে রাখবেন যে, ব্যবহারকারীর জন্য এটি আরও সহজ easier ব্যবহার id
:
$ id -u lightdm
105
এটি কেবল এর মাধ্যমে করা যেতে পারে cut
:
$ cut -d: -f3 < <(getent group sudo)
27
getent group sudo
sudo
থেকে গ্রুপ সম্পর্কিত লাইন পাবেন/etc/group
ফাইল :
$ getent group sudo
sudo:x:27:foobar
তারপরে আমরা সীমাবদ্ধ তৃতীয় ক্ষেত্রটি নিতে পারি :
।
আপনি যদি সেই অনুযায়ী আউটপুট স্ট্রিং চান তবে এর মধ্যে কমান্ড প্রতিস্থাপন ব্যবহার করুন echo
:
$ echo "Group sudo with GID="$(cut -d: -f3 < <(getent group sudo))""
Group sudo with GID=27
% echo "Group cdrom with GID="$(cut -d: -f3 < <(getent group sudo))"" Group cdrom with GID=27
, দয়া করে আরও কিছু জেনেরিক =)
GID="$(getent group cdrom | cut -d: -f3)"
?
আরও জটিল উত্তরগুলি সর্বদা প্রশংসা করা হয় - আমি সেগুলি বেশ সততার সাথে পড়া থেকে অনেক কিছু শিখি।
আমি এই পৃষ্ঠায় এসেছি কারণ আমি আমার মেইল গোষ্ঠীর গ্রুপ আইডি খুঁজছিলাম এবং সেই তথ্যটি কোথায় সঞ্চিত ছিল তা অবগত ছিল না।
আপনার উত্তরগুলি দুর্দান্ত - আমি এখানে এসেছি এমন একটি সহজ
Def @ fourof4: / হোম $ বিড়াল / ইত্যাদি / গ্রুপ | গ্রেপ মেইল
মেইল: X: 8:
আমি জানি এটি আইডিটি বাছাই করে না তবে এটি আমার উদ্দেশ্যটি কার্যকর করেছে।
ব্লককোট এটি চেষ্টা করুন: awk -F: '/ sudo / {GID = "$ 3}' / ইত্যাদি / গোষ্ঠী সহ" গোষ্ঠী "$ 1" মুদ্রণ করুন - এপ্রিল 23 '15 15:51 এ ব্লককোট
আমি উল্লেখ করেছি এটির পাশাপাশি এটিও উল্লেখ করা আছে .... প্রত্যেকে আমার ভালবাসা পেয়ে যায় - দুঃখিত যদি আমি আপনাকে মিস করি
এটিই আমাকে সেই ফাইলটিতে পরিচালিত করেছিল।
ধন্যবাদ এবং আপনার ইচ্ছামত যে কোনও ফর্মে আমাকে চমৎকার খাওয়ান! Def
perl
ওয়ান-লাইনার ব্যবহার :
% perl -ne '@elements=(split /:/); printf "Group %s with GID=%s\n",$elements[0],$elements[2]' <<< $(getent group sudo)
Group sudo with GID=27
বা আরও ছোট (এবং আরও ভাল)
% perl -F/:/ -ane 'printf "Group %s with GID=%s\n",$F[0],$F[2]' <<< $(getent group sudo)
Group sudo with GID=27
-F
বা -l
বিকল্পটি এটি করে।
প্রয়োজনীয় একটি হ্যাক: (এখনও সম্ভবত আরও ভাল উত্তর আছে)
awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep "group-name"
সহজ সংস্করণ (@ এফ ধন্যবাদ):
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
উদাহরণ:
$ awk -F\: '{print "Group " $1 " with GID=" $3}' /etc/group | grep sudo
Group sudo with GID=27
awk -F\: '/sudo/ {print "Group " $1 " with GID=" $3}' /etc/group
awk
চেয়ে কমperl
)