重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
删除文本、文件中的空行
创新互联建站是专业的缙云网站建设公司,缙云接单;提供网站制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行缙云网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!实验描述:
可同时处理一个或多个文件;
要求在用 sed 删除空行之前先核实文件是否存在;
sed的输出被导入一个文件名中含有$ $的临时文件,最后将临时文件移回原来的文件中;
使用shift命令取得所有的文件名,用while循环逐个处理所有的文件,直至处理完为止;
可以使用del.lines --help获得一个简短的帮助信息。
实验过程:
1:编写一个脚本,名为del.lines:
截图如下:
内容如下:
#!/bin/bash
# Script takes filename(s) and deletes all blank lines.
TEMP_F="/tmp/del.lines.$$"
usage()
{
echo "Usage:$0 file [file...]"
echo "try $0 -help for more info"
exit 1
}
if [ $# -eq 0 ] ;
then
usage
fi
FILES=$1
While [ $# -gt 0 ]
do
echo "...$1"
case $1 in
--help)
echo "Use this script to delete all blank lines from a text file(s)"
exit 0
;;
*)
FILE_NAME=$1
If [ -f $1 ]
then
sed '/^$/d' $FILE_NAME > $TEMP_F
mv $TEMP_F $FILE_NAME
else
echo "$0 cannot find this file: $1"
fi
shift
;;
esac
done
2.保存脚本并增加执行权限: chmod +x del.lines,执行后脚本提示寻帮助:
3. 为了验证脚本执行效果:
添加两个含有空行的无用数据脚本文件:
文件内容截图如下:
4. 执行脚本并验证效果:
注解:
basename命令能够从路径中分离出文件名。通常用于shell脚本中
shift语句用于迁移位置变量,将 $1~$9 依次向左传递
eg:
若当前脚本程序获得的位置变量如下:
$1=file1、$2=file2、$3=file3、$4=file4
则执行一次shift命令后,各位置变量为:
$1=file2、$2=file3、$3=file4
再次执行shift命令后,各位置变量为:
$1=file3、$2=file4
. . .
5. 根据实际环境,进行相应的脚本修改,以便为生产环境服务。
欢迎关注微信公众号:小温研习社
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。