请设计一个程序,linux如何通过命令行参数接受一个文件名为filename.txt(纯

请设计一个程序,linux如何通过命令行参数接受一个文件名为filename.txt(纯文本文件)和一个整形数字n,实现从filename.txtz中删除第n行数据... 请设计一个程序,linux如何通过命令行参数接受一个文件名为filename.txt(纯文本文件)和一个整形数字n,实现从filename.txtz中删除第n行数据 展开
 我来答
死囚赎罪
2017-05-06 · TA获得超过863个赞
知道小有建树答主
回答量:1063
采纳率:33%
帮助的人:551万
展开全部
#!/bin/bash
#参数一为文件名,包含扩展名 比如 ccc.txt, 参数2为要删除的行数
# 脚本名如果是 a.sh ,执行方式是  ./a.sh ccc.txt 10
if [ ! -f $1 ];then   #查找文件是否存在,不存在的话 异常退出
     echo $1 done found!
     exit 1
 fi
 if [[ $2 -gt `wc -l $1 | grep -o '[[:digit:]]'` ]];then #如果行数大于文件行数,异常退出
     echo line $2 not exist
     exit 1
 fi
 sed "$2d" $1 # 如果sed引入shell变量,需要将单引号换成双引,若转义
 if [[ $? -eq 0 ]];then # 判定sed是否执行成功并输出结果。行数为小数的话 SED命令执行失败,异常退出
     echo line $2 deleted
 else
     echo line $2 not deleted
     exit 1
 fi
 exit 0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式