Linux下的she'll script

        今天对医学图像的处理需要用到Linux下的dcm2nii和nifti2dicom,这两个是开源的软件,专门用于处理医学图像格式,前一个时将dicom格式的文件转换为nii格式,后一个是将nii格式转换为dicom格式。

        这两个软件安装好了之后,都可以在命令行进行执行,很方便。但是为了实验需要,要在Java中调用Linux命令来进行转格式。先尝试写一个she'll脚本,运行这个脚本的时候就可以完成格式转换。

she'll的编写: 以test.sh为例

1、touch test     创建一个文件test

2、vim test         开始便捷test这个文件

#!/bin/bash
#Transform type of nii to dicom,then find the filename.nii.gz image's name , rename ,unzip it to filename.nii
#20170225
dcm2nii -a y ......nii2dcm/N2D_0001.dcm
name=`find -name *.gz`
echo "\nfilename: $name" 
arr=$(echo $name|tr "/" "\n")
for x in ${arr[@]}; do
  echo $x
done
cd   nii2dcm
echo "Step into folder!"
name1=`find -name *.gz`
gunzip $name1
echo "Finsh Unzip"
name2=`find -name *.nii`
cp $name2 "a.nii"
echo "Finsh Rename!"
rm $name2
echo "Remove Orignal file"
pwd
echo "Finsh Transform!"
#!/bin/bash  声明这个script使用的she'll名称

下面的几个#号后面的是被屏蔽的注释,即不会被执行的。

第二句是调用的dcm2nii这个命令,

第三句比较关键,

name=`find -name *.gz`
因为文件较多,可以通过后缀来找到自己需要的。注意,等号后面的不是引号,是tab上面的那个键。也可以用另一种写法
name=$(find -name *.gz)
这两种方法均可以找到后缀为gz的文件。

第四句输出变量的值:

echo "\nfilename: $name" 
$是获取name的值。

第五句,使用正则表达式:

arr=$(echo $name|tr "/" "\n")
因为上面的name的值包含路径信息,里面肯定有许多“/”,所以采用正则表达式来将路径信息分开。

第六句输出字符串中的值:

for x in ${arr[@]}; do
  echo $x
done

OK,下面的句子基本都是上面的重复。有不对的地方还请批评指正。

另外:

获得文件的名字和后缀也可以这样:

  1. file=”thisfile.txt”  
  2. echo “filename: ${file%.*}”  
  3. echo “extension: ${file##*.}”
参考:

http://blog.csdn.net/rainharder/article/details/6030255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值