1乾燥液
$> cat translog.txt
ONE="000012"
TIME="2013-02-19 15:31:06"
perl
正規表現では、 lookbehind 演算子grep
を使用してこれらの値と一致させることができます。
$> grep --only-matching --perl-regex "(?<=ONE\=).*" translog.txt
"000012"
そしてのためにTIME
:
$> grep --only-matching --perl-regex "(?<=TIME\=).*" translog.txt
"2013-02-19 15:31:06"
したがって、test2.sh
スクリプトを使用しないと、次のように使用できます。
#!/bin/bash
ONE=`grep --only-matching --perl-regex "(?<=ONE\=).*" translog.txt`
TIME=`grep --only-matching --perl-regex "(?<=TIME\=).*" translog.txt`
2コマンドラインソリューション
以下のリンクの1つで指摘されている別の解決策は、次を使用することです。source
(aka .
)コマンドを使用して、ファイル内のすべての変数を現在のシェルにロードします。
$ source translog.txt
これで、ファイル内で定義された変数の値にアクセスできます。
$ echo $TIME
"2013-02-19 15:31:06"
3最も簡単な解決策
別のアプローチが@user2086768によって言及されました。これらの行を`test2.shに入れてください:
#!/bin/bash
eval $(cat translog.txt)
test2.sh
その結果、スクリプト内で2つの変数を割り当てることになります。
ONE="000012"
TIME="2013-02-19 15:31:06"
次の追加を簡単に確認できます。
echo $ONE
echo $TIME
これらのリンクも確認してください。