私はLinuxにかなり慣れていません。単純なものが必要ですが、どこから始めればよいかわかりません。bash スクリプトでは、文字列 "VOL. " と "," の間の HTML ページの値を解析し、それを変数に渡す必要があります。
2 に答える
4
newvar=$(grep -oP 'VOL\.\K.*?(?=,)' file.txt)
echo "$newvar"
または文字列から:
newvar=$(grep -oP 'VOL\.\K.*?(?=,)' <<< "$string")
echo "$newvar"
よりポータブルなものが必要な場合:
newvar=$(perl -lne '/VOL\.\K.*?(?=,)/ && print $&' <<< "$string")
echo "$newvar"
正規表現の説明
VOL\.
= リテラルVOL.
:バックスラッシュなしの.
= 任意の文字regex
\K
= ゼロに一致を再開します。 https://stackoverflow.com/a/13543042/465183を参照してください.*?
= 任意の文字、0 から N 回出現しますが、?
charと貪欲ではありません(?=,)
= charをルックアップするのは、肯定的な先読みアサーションです。,
于 2013-04-20T15:01:53.757 に答える
1
これは、bash の組み込みの正規表現マッチングを使用して実行できます。
if [[ "$var" =~ "VOL. "([^,]*)"," ]]; then
match="${BASH_REMATCH[1]}"
fi
于 2013-04-20T17:00:04.453 に答える