初识 linux shell —— 批量处理数据文件
初识 linux shell——批量处理数据文件
因为要处理实验数据,今天尝试了一下linux shell脚本。
文件格式
文件头有三种,表示三种不同的解释器,具体的区别可以看参考,一般情况下选#!/bin/bash
就可以了
#!/bin/bash
#!/bin/sh
#!/bin/dash
批量处理数据文件
我的目的是批量的读取存在文件夹target_dir
中的文件,处理后输出一个同名但是格式不同的文件。首先要实现的是遍历对应目录中的文件:提取文件名和目录名
#!/bin/bash
for file in `ls target_dir` #注意这里不是单引号
do
echo $file #文件名带类型
echo ${file%/*} #文件名不带类型
done
然后,就是实现赋值(这对我这样的新手来说是个大坑)Shell变量赋值失败和引用不成功的原因(入门类)
#!/bin/bash
resType='.txt' #赋值失败建议看看参考链接
for file in `ls target_dir` #注意这里不是单引号
do
echo $file #文件名带类型
echo ${file%/*} #文件名不带类型
echo ${file%/*}$resType #结果文件名
A="target_dir/$file" #又是赋值,注意格式
B="target_dir/${file%/*}$resType"
./dataprocess A B #./dataprocess是我写的数据处理程序
done