私は、1300以上の単語で構成されたマルチラインの非常に長い文字列を持っています。Bashプログラミングクイック検索と抽出方法
EDIT:文字列から大まかに2つの値を検索して抽出し、書式設定と追加処理のための変数に格納したいと考えています。
私は配列とループラインに文字列をオンにし、私は私もちょうどで文字列を検索することができます知っている
while read -r line; do
arr+=("$line")
done <<< "$ACSCH"
for i in "${arr[@]}"
do
if [[ "$i" =~ "level 1: src="(.*)$ ]]; then
SRC=${BASH_REMATCH[1]}
fi
if [[ "$i" =~ "level 1: dst="(.*)$ ]]; then
DST=${BASH_REMATCH[1]}
fi
done
で各行を検索することができます。
if [[ "$ACSCH" =~ "src="([[:alnum:]]*) ]]; then
SRC=${BASH_REMATCH[1]}
fi
が、私はいけません追加の変数を検索する方法を知っている
私が考えることができる唯一の方法は、文字列全体を検索する場合に別の方法を入れることです
if [[ "$ACSCH" =~ "DST="([[:alnum:]]*) ]]; then
DST=${BASH_REMATCH[1]}
fi
これは正しい方法ですか、それとも良い方法ですか?
どの方法で高速になりますか。私の変数、私の他の方法、または私がまだ知らない別の方法について各行を検索し、それが私がここで助けを探している理由です。
** EDIT: サンプルINPUT:SRC = 19r4345e3e未知の長さのテキスト
サンプル出力のDSTの間= 1kje3dkj35残りの部分でいくつかの他のテキスト........:SRC = 19r4345e3e | DST = 1kje3dkj35
その後、私はさらに私のSRCとDST変数を処理することができます。**
ありがとう! --E
サンプル入力とそのサンプル入力の希望出力を質問に追加してください。 – Cyrus
大きなテキスト変数であるので、私はsmaple入力を追加したくありません。私は – eherr9633