পরিবর্তনশীল নির্দিষ্ট শব্দ অপসারণ


23

একটি bashস্ক্রিপ্টে, আমি কীভাবে কোনও শব্দকে কোনও স্ট্রিং থেকে সরিয়ে ফেলতে পারি, শব্দটি একটি ভেরিয়েবলে সংরক্ষণ করা হবে।

FOO="CATS DOGS FISH MICE"
WORDTOREMOVE="MICE"

উত্তর:


30

চেষ্টা করুন:

$ printf '%s\n' "${FOO//$WORDTOREMOVE/}"
CATS DOGS FISH

এই কাজ ksh93, mksh, zsh


POSIXLY:

FOO="CATS DOGS FISH MICE"
WORDTOREMOVE="MICE"

remove_word() (
  set -f
  IFS=' '

  s=$1
  w=$2

  set -- $1
  for arg do
    shift
    [ "$arg" = "$w" ] && continue
    set -- "$@" "$arg"
  done

  printf '%s\n' "$*"
)

remove_word "$FOO" "$WORDTOREMOVE"

এটি ধরে নিয়েছে যে আপনার শব্দগুলি স্থান সীমান্তযুক্ত এবং এর পার্শ্ব প্রতিক্রিয়া রয়েছে যা আগে এবং পরে স্থানগুলি সরিয়ে দেয় "$WORDTOREMOVE"


17

ব্যাশ সাবস্ট্রিং প্রতিস্থাপন ব্যবহার:

যদি foo = $ {যদি foo // $ WORDTOREMOVE /}

// / এবং between এর মধ্যে থাকা সামগ্রীর সাথে স্ট্রিংয়ের ($ WORDTOREMOVE) সমস্ত উপস্থিতি প্রতিস্থাপন করে} এই ক্ষেত্রে কিছুই।

এটিকে এবং ব্যাশে স্ট্রিংগুলির সাথে কাজ করার অন্যান্য উপায়গুলির তথ্যের জন্য বিভাগটি 10.1 দেখুন। অ্যাডভান্সড ব্যাশ-স্ক্রিপ্টিং গাইডের স্ট্রিংগুলি পরিচালনা করে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.