Bash

使用 cut 返回字元串的中間

  • April 25, 2016

我有一個 xml 字元串回stdout顯到

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

{41c33a-4893b-3627a-617a}在這種情況下,我想返回字元串。我正在考慮使用 cut (甚至可能兩次管道),但我不知道正確的語法。我正在使用 bash。

您可以使用cut-d選項來定義分隔符(從結果欄位中排除):

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

這拆分>並輸出第二個欄位,離開{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 是您要查找的結果。

引用自:https://unix.stackexchange.com/questions/278751