テキストパターンを含むファイルがあります:
AAAA - BBBB (CCCC) - (DDDD)
私は最初のセット AAAA - BBBB を個別に使用することだけに興味があります (つまり、AAAA と BBBB)。次を使用して '(CCCC) - (DDDD)' を切り取りました:
FIRST_SET="${STRING%% (*}"
「AAAA - BBBB」と表示されます。
どうしても、2 番目の「BBBB」から「AAAA」を抽出できません。
前もって感謝します。
答え1
最終結果を 2 つのシェル変数に格納し、必要な単語が空白で区切られ、単語に空白が埋め込まれておらず、変数にIFS
デフォルト値があると仮定します。
$ read -r word1 dash word2 junk <file
$ printf 'word1 = "%s"\nword2 = "%s"\n' "$word1" "$word2"
word1 = "AAAA"
word2 = "BBBB"
ここで使用されるコマンドread
は、最初の単語を変数 に読み込みword1
、2 番目の単語を変数 に読み込みますword2
。単語間のダッシュは変数 に読み込まれdash
、末尾のジャンクは という変数に配置されますjunk
。
答え2
最初のステップと同じように実行してください:
FIRST_SET="${STRING%% (*}"
FIRST_WORD=${FIRST_SET%% *}
SECOND_WORD=${FIRST_SET##* }