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
を<
再分割して出力します。
フィールドは、区切り文字の間、テキストの先頭と最初の区切り記号の間、最後の区切り記号とテキストの終わりの間のテキストを記述します。元のテキストを使用すると、>
次のようになります。
<xml:attribute
{41c33a-4893b-3627a-617a}</xml:attribute
- 空の文字列
(区切り文字を省略) 次に、<
フィールド 2 で以下を使用して提供します。
{41c33a-4893b-3627a-617a}
/xml:attribute
フィールド1はあなたが探している結果です。