kuroの覚え書き

96の個人的覚え書き

変数設定の覚え

#!/bin/sh

#csvファイルから実験名(alias, 2列目)を取り出し、コンマ区切りで並べて変数に格納
cut  -d ',' -f  2 csvtest.csv | sed -e '1d'  >tmp.txt
list=$(paste -s -d ',' tmp.txt)
echo $list

csvから変数を取り出す アレイジョブ編

#!/bin/sh
#$ -cwd
#$ -t 1-10

csvfile=csvtest.csv
line=$SGE_TASK_ID
#1行目は項目名なので飛ばす
line=`expr $line + 1`
  alias=$(sed -n "${line}p" $csvfile | cut -d ',' -f 2)
  file1=$(sed -n "${line}p" $csvfile | cut -d ',' -f 4)
  file2=$(sed -n "${line}p" $csvfile | cut -d ',' -f 5)

echo "aliasは$alias"
echo "file1は$file1"
echo "file2は$file2"
echo "==========="

スクリプトから子スクリプトに変数を渡すにはexportで環境変数としなければならない。

#!/bin/sh
#$ -cwd
#$ -t 1-10

csvfile=csvtest.csv
line=$SGE_TASK_ID
#1行目は項目名なので飛ばす
line=`expr $line + 1`
 export alias=$(sed -n "${line}p" $csvfile | cut -d ',' -f 2)
 export file1=$(sed -n "${line}p" $csvfile | cut -d ',' -f 4)
 export file2=$(sed -n "${line}p" $csvfile | cut -d ',' -f 5)

# サブコマンドを実行
sh ./child.sh