বাশ তালিকা থেকে উপাদান পেতে কিভাবে?


40

এখানে একটি তালিকা রয়েছে:

List = "abcd 1234 jvm something"

সমস্ত তালিকাটি লুপ না করে দ্বিতীয় উপাদানটি কীভাবে "1234" পাবেন?

উত্তর:


50

সমান চিহ্নের মধ্যে কোনও স্থান নেই

$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234

কিছু অন্যান্য উপায়, যদিও শেলের ইন্টার্নালগুলি ব্যবহার করার মতো দক্ষ নয়

$ echo $List | cut -d" " -f2
1234
$  echo $List | awk '{print $2}'
1234
$ echo $List | sed 's/^.[^ \t]* //;s/ .*//'
1234
$ echo $List | tr " " "\n"|sed -n '2p'
1234

ধন্যবাদ। আপনি কোডে কিছু মন্তব্য দিতে দয়া করে?
— স্পোনস্ট

1
আমি দ্বিতীয় লাইন মানে।
— স্পোনস্ট

17
@Spawn set -- $somethingটুকরা $somethingএ $IFSঅবস্থানগত ভেরিয়েবল চরিত্র (ডিফল্ট স্থান দ্বারা) এবং নির্ধারণ বিভক্ত অংশের $1, $2...
— বেঞ্জামিন Bannier

43

কেবল ঘোস্টডগের উত্তরটি পরিপূরক করতে: আপনি $Listএর উপাদানগুলিকে একটি অ্যারেতে রেখে সেখান থেকে নির্দিষ্ট তালিকা উপাদানটি অ্যাক্সেস করতে পারেন

List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}

দ্রষ্টব্য যে অ্যারে সূচকগুলি 0,1,2, ... গণনা করা হচ্ছে।

এতে অনেকগুলি নতুন ভেরিয়েবলের সাথে শেল পরিবেশ দূষিত না করার সুবিধা রয়েছে।


এটি দুর্দান্ত: :-)
— স্প্যানস্টে

1
কোন প্রয়োজন নেই echo: arr=($List)
— ব্যবহারকারীর 181894

@ ঘোস্টডগ সম্ভবত বাধ্যতামূলক আচরণ, সম্পাদিত।
— বেনজামিন ব্যানিয়ের

@ বেঞ্জামিনব্যানিয়েয়ার, আপনি কীভাবে একাধিক উপাদান নির্বাচন করতে পারেন। Synt {আরার [১,২,৩]} like এর মতো কিছু বাক্য গঠন আছে (এটি নয়, যেহেতু আমি চেষ্টা করেছি, তবে এটির মতো) বা লুপের জন্য আমার কী প্রয়োজন?
— কোভোথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.