두 이미지 파일의 헤더 정보를 읽는 명령어의 값을 비교하는 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
실제로 두 파일의 두 번째 열만 비교하면 됩니다. 사용해 보았지만 awk
파일이 아니라 변수이기 때문에 작동하지 않습니다. 어쨌든 두 번째 열만 인쇄할 수 있습니까? 아니면 더 나은 방법은 단지 Dim3 필드를 grep하는 것입니까?
답변1
grep
다음으로 교체해 보세요 .
... | awk '$1 == "dim3" { print $2;}'
그러면 첫 번째 필드의 결과가 필터링 pim3
되고 두 번째 필드만 인쇄됩니다.