字串提取

字串提取

我有一個帶有文字模式的文件:

AAAA - BBBB (CCCC) - (DDDD)

我只對單獨使用第一組 AAAA - BBBB 感興趣(即 AAAA 和 BBBB),我使用以下方法截斷了“(CCCC)-(DDDD)”:

FIRST_SET="${STRING%% (*}" 

給我「AAAA - BBBB」。

我一輩子都無法從第二個「BBBB」中提取出「AAAA」。

提前致謝。

答案1

假設您想要兩個 shell 變數中的最終結果,您想要的單字由空格分隔,單字中沒有嵌入空格,且變數IFS具有預設值:

$ read -r word1 dash word2 junk <file
$ printf 'word1 = "%s"\nword2 = "%s"\n' "$word1" "$word2"
word1 = "AAAA"
word2 = "BBBB"

這裡使用的命令read會將第一個字讀入變量word1,並將第二個字讀入變數word2。單字之間的破折號被讀入變量dash,末尾的垃圾被放置在名為 的變數中junk

答案2

就像你的第一步:

FIRST_SET="${STRING%% (*}"
FIRST_WORD=${FIRST_SET%% *}
SECOND_WORD=${FIRST_SET##* }

相關內容