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[@]}; 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,下面的句子基本都是上面的重复。有不对的地方还请批评指正。
另外:
获得文件的名字和后缀也可以这样:
- file=”thisfile.txt”
- echo “filename: ${file%.*}”
- echo “extension: ${file##*.}”
参考:
http://blog.csdn.net/rainharder/article/details/6030255
Linux下的she'll script相关推荐
- linux下脚本录制工具——script和scriptreplay
在linux环境下,想要录制一段屏幕视屏不是特别方便.在做这次项目时,通过查找资料,找到了一种方便而且便捷的方法,分享给大家. linux下有script和scriptreplay这两个工具组合用于录 ...
- linux script 教程,linux下神奇的script命令,linuxscript命令
linux下神奇的script命令,linuxscript命令script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他 ...
- linux ini文件,Shell script - Linux下解析ini配置文件
导语Linux 有时候需要统计多台主机上面的数据,比如合并N多主机的日志,然后进行下一步的分析.这个时候如果直接把所有主机IP写死到脚本中的话,下次新增一台主机,就需要再去修改脚本,如果涉及到多个脚本 ...
- YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...
- linux网卡设置adsl上网,Linux下设置ADSL自动拨号上网
前段时间下载了红帽的linux,版本为redhat 9.0,整整刻了三张CD.最初是为了体验一下linux下QQ聊天软件的功能,最后因内核太低(官方推荐内核在2.6以上,我下载的版本是2.4)而告终. ...
- linux 搜索so文件,Linux下查找和安装依赖的.so文件
以解决Webex在Linux下运行问题为例说明查找和安装依赖的.so文件方法: 查找依赖的.so文件$ ldd $HOME/.webex/1324/*.so | grep 'not found' li ...
- 20120520 Linux下mysql的自动备份工具
文章摘自:http://hi.baidu.com/vb98/blog/item/2ed90cea835fa4cfd439c97f.html linux下的MySQL自动备份工具-第二版2011-10- ...
- 详解linux下auto工具制作Makefile源码包(制作篇)
2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一. 概述 为了更好的制作configure ...
- Linux下双网卡绑定(bonding技术)
Linux网卡绑定探析 2013-08-20 15:39:31 现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景.linux操作系统下自带的网卡 ...
最新文章
- Apache Common HttpClient使用之七种武器
- android控件---自定义带文本的ImageButton
- 【Tools】cmake 常用变量和常用环境变量查表手册---整理
- 2014/School_C_C++_B/3/x的x次幂
- 微信iOS版本推出深色模式,网友:终于可以“好好熬夜”了!
- ubuntu挂载共享文件
- 专业零售商行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- ansys linux运行_如何在linux系统下启动workbench。谢谢啦。 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
- Pandas处理缺失数据
- Oracle 11g数据库基础教程(第2版)-课后习题-第十二章
- 突破网吧及机房管理限制的方法(转)
- [Extjs6]随记 store本地过滤数据显示
- linux新建/删除子接口
- 迈成专转本三毛计算机,念念不忘,必有回响【迈成专转本学员分享】
- 优秀网页设计微博汇总
- Android朋友圈怎么换行,2020年发朋友圈打字怎么换行
- VC中画基准线,随鼠标移动
- TINA导入SPICE模型
- 130-Vue中的监听事件——Watch
- 【GeoFans】GNSS相关产品团队
热门文章
- 常用JS图片滚动代码大全
- vscode 实现在行尾加分号
- 会说话:如何求人办事会说场面话
- mysql可串行化读音,Oracle与MySQL中“可串行化”的对比测试
- Word97文字处理软件培训教案
- MYSQL 错误1604
- 计算机财务管理技术pdf,计算机财务管理技术在财务管理方面的应用研究.pdf
- 创始人专访 | Paul:听到自己的学员取得科研成功,是最大的幸福之一
- C语言求1-1/2+1/3-1/4+...+1/99-1/100
- E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用