请设计一个程序,linux如何通过命令行参数接受一个文件名为filename.txt(纯
请设计一个程序,linux如何通过命令行参数接受一个文件名为filename.txt(纯文本文件)和一个整形数字n,实现从filename.txtz中删除第n行数据...
请设计一个程序,linux如何通过命令行参数接受一个文件名为filename.txt(纯文本文件)和一个整形数字n,实现从filename.txtz中删除第n行数据
展开
1个回答
展开全部
#!/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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询