今天对医学图像的处理需要用到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[@]}; doecho $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[@]}; doecho $x
done

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

另外:

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

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

参考:

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

Linux下的she'll script相关推荐

  1. linux下脚本录制工具——script和scriptreplay

    在linux环境下,想要录制一段屏幕视屏不是特别方便.在做这次项目时,通过查找资料,找到了一种方便而且便捷的方法,分享给大家. linux下有script和scriptreplay这两个工具组合用于录 ...

  2. linux script 教程,linux下神奇的script命令,linuxscript命令

    linux下神奇的script命令,linuxscript命令script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他 ...

  3. linux ini文件,Shell script - Linux下解析ini配置文件

    导语Linux 有时候需要统计多台主机上面的数据,比如合并N多主机的日志,然后进行下一步的分析.这个时候如果直接把所有主机IP写死到脚本中的话,下次新增一台主机,就需要再去修改脚本,如果涉及到多个脚本 ...

  4. YOLOv4:目标检测(windows和Linux下Darknet 版本)实施

    YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...

  5. linux网卡设置adsl上网,Linux下设置ADSL自动拨号上网

    前段时间下载了红帽的linux,版本为redhat 9.0,整整刻了三张CD.最初是为了体验一下linux下QQ聊天软件的功能,最后因内核太低(官方推荐内核在2.6以上,我下载的版本是2.4)而告终. ...

  6. linux 搜索so文件,Linux下查找和安装依赖的.so文件

    以解决Webex在Linux下运行问题为例说明查找和安装依赖的.so文件方法: 查找依赖的.so文件$ ldd $HOME/.webex/1324/*.so | grep 'not found' li ...

  7. 20120520 Linux下mysql的自动备份工具

    文章摘自:http://hi.baidu.com/vb98/blog/item/2ed90cea835fa4cfd439c97f.html linux下的MySQL自动备份工具-第二版2011-10- ...

  8. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  9. Linux下双网卡绑定(bonding技术)

    Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的网卡 ...

最新文章

  1. Apache Common HttpClient使用之七种武器
  2. android控件---自定义带文本的ImageButton
  3. 【Tools】cmake 常用变量和常用环境变量查表手册---整理
  4. 2014/School_C_C++_B/3/x的x次幂
  5. 微信iOS版本推出深色模式,网友:终于可以“好好熬夜”了!
  6. ubuntu挂载共享文件
  7. 专业零售商行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. ansys linux运行_如何在linux系统下启动workbench。谢谢啦。 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  9. Pandas处理缺失数据
  10. Oracle 11g数据库基础教程(第2版)-课后习题-第十二章
  11. 突破网吧及机房管理限制的方法(转)
  12. [Extjs6]随记 store本地过滤数据显示
  13. linux新建/删除子接口
  14. 迈成专转本三毛计算机,念念不忘,必有回响【迈成专转本学员分享】
  15. 优秀网页设计微博汇总
  16. Android朋友圈怎么换行,2020年发朋友圈打字怎么换行
  17. VC中画基准线,随鼠标移动
  18. TINA导入SPICE模型
  19. 130-Vue中的监听事件——Watch
  20. 【GeoFans】GNSS相关产品团队

热门文章

  1. 常用JS图片滚动代码大全
  2. vscode 实现在行尾加分号
  3. 会说话:如何求人办事会说场面话
  4. mysql可串行化读音,Oracle与MySQL中“可串行化”的对比测试
  5. Word97文字处理软件培训教案
  6. MYSQL 错误1604
  7. 计算机财务管理技术pdf,计算机财务管理技术在财务管理方面的应用研究.pdf
  8. 创始人专访 | Paul:听到自己的学员取得科研成功,是最大的幸福之一
  9. C语言求1-1/2+1/3-1/4+...+1/99-1/100
  10. E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用