2

parameters.txt という名前のフォルダーに txt があります。

PP1 20 30 40 60

PP2 0 0 0 0

各行の最初のテキスト フィールドの値に応じて、awk を使用してさまざまなパラメーターを読み取りたいと思います。現時点では、私が実行する場合

src_dir='/PP1/'
awk "$src_dir" '{ print $2 }' parameters.txt

私は正しく取得します

20

その 20 を変数に格納し、変数自体をエクスポートしたいだけです。

前もって感謝します!

4

3 に答える 3

2

あなたは本当にそれを必要awkとしません。でできますbash

$ src_dir="PP1"
$ while read -r pattern columns ; do 
      set - $columns
      if [[ $pattern  =~ $src_dir ]]; then 
          variable=$2
      fi
   done < parameters.txt
于 2013-06-18T13:19:55.420 に答える
2

出力を保存する場合は、次のようにしますvar=$(awk expression)

result=$(awk -v value=$src_dir '($1==value) { print $2 }' parameters.txt)

-v次の構文で awk に変数を指定すると、コマンドをより一般的なものにすることができます。

$ var="PP1"
$ awk -v v=$var '($1==v) { print $2 }' a
20
$ var="PP2"
$ awk -v v=$var '($1==v) { print $2 }' a
0
于 2013-06-18T13:03:22.757 に答える
0
shell_pattern=PP1
output_var=$(awk -v patt=$shell_pattern '$0 ~ patt {print $2}' file)

$output_varパターンが複数の行に一致する場合、複数の値が含まれる可能性があることに注意してください。最初の値だけに関心がある場合は、exit印刷後に awk プログラムを実行してください。

于 2013-06-18T13:36:09.260 に答える