文字列の中間部分を返すには、cutを使用します。

文字列の中間部分を返すには、cutを使用します。

stdout次のようにエコーされたXML文字列があります。

<xml:attribute>{41c33a-4893b-3627a-617a}</xml:attribute>

{41c33a-4893b-3627a-617a}この場合、文字列を返したいと思います。カットを使用しようとしていますが(パイプを2回行うこともできます)、正しい構文がわかりません。バッシュを使っています。

ベストアンサー1

cut区切り文字を定義するために使用できるオプション-d(結果フィールドを除く):

echo "<xml:attribute>{41c33a-4893b-3627a-617a}</xml:attribute>" | cut -d\> -f2 | cut -d\< -f1

これは>、2番目のフィールドを分割して出力し、そのままにしてから、最初のフィールド{41c33a-4893b-3627a-617a}</xml:attribute<再分割して出力します。

フィールドは、区切り文字の間、テキストの先頭と最初の区切り記号の間、最後の区切り記号とテキストの終わりの間のテキストを記述します。元のテキストを使用すると、>次のようになります。

  1. <xml:attribute
  2. {41c33a-4893b-3627a-617a}</xml:attribute
  3. 空の文字列

(区切り文字を省略) 次に、<フィールド 2 で以下を使用して提供します。

  1. {41c33a-4893b-3627a-617a}
  2. /xml:attribute

フィールド1はあなたが探している結果です。

おすすめ記事