【发布时间】:2017-02-19 07:19:44
【问题描述】:
所以我有一个脚本要编写 它需要是一个脚本,用于管理一个 .dat 文件,其中包含 10000 多行 .dat 的形成是这样的:
id|lastName|firstName|gender|birthday|creationDate|locationIP|browserUsed
933|佩雷拉|马欣达|男|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|火狐
1129|Lepland|Carmen|female|1984-02-18|2010-02-28T04:39:58.781+0000|81.25.252.111|Internet Explorer
4194|Do|Hồ ChÃ|male|1988-10-14|2010-03-17T22:46:17.657+0000|103.10.89.118|Internet Explorer
脚本将在终端输入的特定命令下运行。例如:
首先我需要使用这个命令显示整个 .dat 文件 ./tool.sh -f(第一个命令)(tool.sh是脚本,file是.dat文件)
它还需要通过命令获取特定的#id,并显示该#id 的姓氏和生日
命令:./tool.sh -f -id
此脚本还需要使用某些命令来完成其他一些任务,例如 (./tool.sh --firstnames -f ) 和 ( ./tool.sh -f --edit )
我已经设法找出第一个命令的代码(./tool.sh -f
附言该脚本需要处理每个具有相同结构的 .dat 文件
这是第一个终端命令所需的代码
而 getopts ":f" 选择;做
案例$选择加入
f)
而读线;做回声“$line”;完成
\?)
echo "错误的选择:-$OPTARG" >&2
;;
esac
完成了
【问题讨论】:
-
请出示您的代码。请问一个更具体的问题。需要做的“第二条命令”是什么,实现它有什么具体困难(不知道如何解析命令行?不知道如何找到id?,等等)。除非您确切地告诉我们您不知道该怎么做,否则我们无法帮助您。
-
当 getopts ":f" opt;在读取行时执行 case $opt in f);做回声“$line”;完成&2 ;; esac 完成了 ./tool.sh -f 终端命令的代码/答案,第二个命令我的意思是 ./tool.sh -f -id 并且完成了我的意思是我没有知道它的代码。此命令需要扫描 .dat 文件中的特定#id 并显示具有该 id 的人的姓名和出生日期
-
请将其添加到问题中,而不是在不可读的 cmets 中。点击问题下方的编辑。