it-swarm-ja.tech

BashでMid関数を実行する方法

Bashで文字列のテキストを解析しようとしていますが、ケース選択をスローできますが、その方法を理解しようとすると最大の問題が発生します。 VB私はその本当に簡単なことを知っています

someString = "Hey there"
Select Case Mid(someString,1,5)
 Case "Hey t" 'Do something
 Case "Go aw" 'Do something else
 Case 'Else
  'String is unrecognized
End Select 

Mid関数と同等の文字列操作関数を実行する方法を示すものが見つからないようです。 sedを使用しますか?パターンに基づいて文字列をトリミングしようとはしていないため、awkまたはcutを使用できるとは思いませんが、確かにUnixでも同じようにシンプルになります。

3
mrTomahawk

「カット」はあなたが望むように機能すると思うので、あなたの質問を理解できるかどうかはわかりません。

someString="Hey there"

case `echo $someString | cut -c1-5` in
    "Hey t") echo Do something ;;
    "Go aw") echo Do something else ;;
    *) echo String is unrecognized ;;
esac
3
Luke
someString="Hey there"
case "${someString:0:5}" in
    "Hey t" ) echo Do something ;;
    "Go aw" ) echo Do something else ;;
    * )       echo unrecognized  ;;
 esac

これは、if、Elif、elseを使用して簡単に行うこともできます。 $ {someString:0:5}はパラメーター展開です。詳細については、bashマニュアルのセクション、および Gregs Bash FAQ#7 )を参照してください。

カットを使用する他の答えに注意してください。どちらも機能しますが、bashに組み込まれており、より優れたコードと見なされているため、パラメーターの展開は高速です。カットは、複数行のテキストをカットするのに適しています。

7
Ian Kelling