这是我一直试图解决的linux作业
编写一个名为formatfile的shell脚本,执行该脚本时将显示以下菜单:1-将文件从formatA转换为formatB
2-退出程序
每次用户从菜单中选择项目1时,将要求他/她输入原始文件的名称(要格式化的源文件)和结果文件的名称(新格式的文件) . 然后,脚本格式文件应调用名为convertfile的脚本,并将源文件名和目标文件名作为参数传递给它 . 脚本convertfile应该读取源文件并生成目标文件 . 程序应该继续运行并重新打印主菜单(询问用户是否要转换其他文件),直到用户从菜单中选择退出主脚本的第2项 . 原始(源)文件可以是任何大小,并具有以下格式:x(:,:,index)= / 索引值可能高达99999 * /
Value
X(:,:,指数)=
指数
Value
X(:,:,指数)=
Value
生成的文件应具有以下格式:索引值索引值(包括指数)索引值
示例:假设您有一个名为mydata的文件,其中包含以下数据:x(:,:,5)=
5.0567 5.0567
X(:,:,9)=
0.0345 0.0345
X(:,:,15)=
1.0e-007 *
0.6387 0.6387
X(:,:,117)=
0.0289 0.0289
然后你的脚本应该生成以下文件(假设我们称之为结果):5 5.0567
9 0.0345
15 0.6387e-007
117 0.0289
这部分显然是乘法:
1.0e-007 *
0.6387 0.6387
值之间还有一个标签空间,因此可能需要它
tr -s " "
我一直试图解决它,但找不到任何与此相关的东西 .
到目前为止,我已经完成了formatfile并且调用了convertfile
while :
do
echo "1- Convert file from formatA to formatB"
echo "2- Exit program"
read value
case $value in
1) ./finalproject/convertfile ;;
2) exit 0 ;;
esac
done
在convertfile上我做了
echo Enter file name which contains the data
read mydata
echo Enter resulting file
read result
line=$(cat ./$mydata | cut -d: -f3 | sed 's/)=/ /' | tr "," " " | tr -s " " | cut -d" " -f2 > ./$result)
直到这里我被困住了 .