正規表現を使用してテキストを取得するために必要なファイルがあります。ファイルをと呼びますx.txt
。私がやりたいのは、開いx.txt
て、ファイルから正規表現の一致を抽出し、それをパラメーターに設定することです。誰かが私にこれに関するいくつかの指針を与えることができますか?
編集
だからx.txt
私は次の行を持っています
$variable = '1.2.3';
ファイルからbashスクリプトに抽出し1.2.3
て、zipファイルに使用する必要があります
sed
シングルパスで効率的に行うために使用します†</sup>:
var=$(sed -ne "s/\\\$variable *= *['\"]\([^'\"]*\)['\"] *;.*/\1/p" file)
上記は、値が一重引用符または二重引用符で囲まれているかどうかに関係なく機能します。
GNU Grepは選択したグループを出力できますか?も参照してください。。
$ cat dummy.txt
$bla = '1234';
$variable = '1.2.3';
blabla
$variable="hello!"; #comment
$ sed -ne "s/\\\$variable *= *['\"]\([^'\"]*\)['\"] *;.*/\1/p" dummy.txt
1.2.3
hello!
$ var=$(sed -ne "s/^\\\$variable *= *'\([^']*\)' *;.*/\1/p" dummy.txt)
$ echo $var
1.2.3 hello!
†または、選択したプラットフォームsed
と比較した場合に、少なくともデータをチャーンするのと同じくらい効率的に。grep
:)
grep-chop-chopテクニックを使用できます
var="$(grep -F -m 1 '$variable =' file)"; var="${var#*\'}"; var="${var%\'*}"
すべてのファイル行がその形式($<something> = '<value>'
)である場合、次のcut
ように使用できます。
value=$(cut -d"'" -f2 file)