両方の画像ファイルのヘッダ情報を読み取る命令の値を比較するif文を作成したいと思います。まず、コマンドの出力を変数に渡します。
~$ hd1=$(<command> <file1> | grep dim3)
~$ hd2=$(<command> <file2> | grep dim3)
~$ if [ $hd1 = $hd2 ];
~$ then
etc
私のコマンドの出力には多くのフィールドがあります。
~$ <command> <file>
~$ sizeof_hdr 348
data_type INT16
dim0 3
dim1 256
dim2 256
dim3 70
dim4 1
dim5 1
dim6 1
dim7 1
vox_units mm
time_units s
datatype 4
nbyper 2
bitpix 16
pixdim0 0.000000
pixdim1 0.828125
pixdim2 0.828125
pixdim3 2.199998
pixdim4 4.177372
pixdim5 0.000000
pixdim6 0.000000
pixdim7 0.000000
vox_offset 352
file_type NIFTI-1+
だからここでは私が興味を持っているものを得るためにgrepを使用しています。問題は、私のコマンドの出力に「dim3」フィールドと「pixdim3」フィールドが含まれており、以下をgrep
使用して両方のフィールドを印刷することです。
~$ dim3 70 pixdim3 2.19
実際には、2つのファイルの2番目の列を比較するだけです。試してみましたが、awk
ファイルではなく変数なので動作しません。とにかく2列目のみ印刷できますか?それとも、より良い方法はDim3フィールドをgrepするだけですか?
答え1
grep
次に交換してみてください。
... | awk '$1 == "dim3" { print $2;}'
これにより、最初のフィールドの結果がフィルタリングpim3
され、2番目のフィールドのみが印刷されます。