
Gostaria de exportar os valores dos dados gerados no Terminal para um arquivo CSV, a seguir está a saída que obtenho após executar uma instrução no Freesurfer
dev@dev-OptiPlex-780:~$ mri_segstats --subject Sub1 --etiv-only
$Id: mri_segstats.c,v 1.75.2.9 2013/02/16 00:09:33 greve Exp $
cwd
cmdline mri_segstats --subject Sub1 --etiv-only
sysname Linux
hostname dev-OptiPlex-780
machine x86_64
user dev
UseRobust 0
atlas_icv (eTIV) = 1144730 mm^3 (det: 1.701803 )
Da saída acima, gostaria de extrair apenas o valor de atlas_ICV (eTIV) (ou seja, = 1144730 mm ^ 3) em um arquivo csv usando script bash, qualquer sugestão seria muito apreciada.
Eu escrevi um código automatizado para extrair o valor ICV para 10 assuntos que tenho em meu diretório
for ICV in `cat list_subjects.txt`;do
#mri_segstats --subject $ICV --etiv-only
ICV_Calculation=mri_segstats --subject $ICV --etiv-only | sed -n 's/.*(eTIV) = \([0-9].*mm^3\).*/\1/p'
echo "${Subjects_ICV},${ICV_Calculation}" >>Subjects_ICV.csv
done
onde list_subjects.txt inclui todos os assuntos que tenho em meu diretório
Responder1
Eu gostaria de extrair apenas o valor de
atlas_ICV (eTIV)
(ou seja =1144730 mm^3
)
Dado este arquivo:
: mri_segstats.c,v 1.75.2.9 2013/02/16 00:09:33 greve Exp $
cwd
cmdline mri_segstats --subject Sub1 --etiv-only
sysname Linux
hostname dev-OptiPlex-780
machine x86_64
user dev
UseRobust 0
atlas_icv (eTIV) = 1144730 mm^3 (det: 1.701803 )
Eu posso usar isso sed
:
sed -n 's/.*(eTIV) = \([0-9].*mm^3\).*/\1/p' atlas
1144730 mm^3
Se você deseja extrair esse valor da saída para STDOUT
, basta usar um pipe, assim:
cat atlas | sed -n 's/.*(eTIV) = \([0-9].*mm^3\).*/\1/p'
1144730 mm^3
No seu caso, acho que seria assim:
mri_segstats --subject Sub1 --etiv-only | sed -n 's/.*(eTIV) = \([0-9].*mm^3\).*/\1/p'
sed --version
sed (GNU sed) 4.2.2