温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux—删除文本、文件中的空行

发布时间:2020-06-23 18:16:58 来源:网络 阅读:1043 作者:wenzhongxiang 栏目:安全技术

删除文本、文件中的空行

实验描述:

可同时处理一个或多个文件;

要求在用 sed 删除空行之前先核实文件是否存在;

sed的输出被导入一个文件名中含有$ $的临时文件,最后将临时文件移回原来的文件中;

使用shift命令取得所有的文件名,用while循环逐个处理所有的文件,直至处理完为止;

可以使用del.lines --help获得一个简短的帮助信息。

实验过程:

1:编写一个脚本,名为del.lines:

截图如下:

Linux—删除文本、文件中的空行

内容如下:

#!/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,执行后脚本提示寻帮助:

Linux—删除文本、文件中的空行

3. 为了验证脚本执行效果:

添加两个含有空行的无用数据脚本文件:

Linux—删除文本、文件中的空行

文件内容截图如下:

Linux—删除文本、文件中的空行Linux—删除文本、文件中的空行

4. 执行脚本并验证效果:

Linux—删除文本、文件中的空行

注解:

  • 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. 根据实际环境,进行相应的脚本修改,以便为生产环境服务。

欢迎关注微信公众号:小温研习社

Linux—删除文本、文件中的空行

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI