首页 > 其他分享 >检查每个文件(或目录)中的最后一行。如果某个文件的最后一行为空(或不存在),则在该文件中添加一个空行

检查每个文件(或目录)中的最后一行。如果某个文件的最后一行为空(或不存在),则在该文件中添加一个空行

时间:2023-07-21 22:55:56浏览次数:33  
标签:空行 文件 read 最后 命令 tail ls

执行:

ls | while read f; do tail -n1 $f | read -r _ || echo >> $f; done

这段脚本是一个简单的Bash命令行脚本,用于检查每个文件(或目录)中的最后一行。如果某个文件的最后一行为空(或不存在),则在该文件中添加一个空行。

让我们逐步解释脚本:

  1. ls: 这是列出当前目录下所有文件(或目录)的命令。

  2. |: 这是管道操作符,它将ls命令的输出作为下一个命令的输入。

  3. while read f; do: 这是一个while循环,用于逐行读取ls命令的输出,并将每行的值赋给变量$f。在这里,$f表示当前处理的文件(或目录)的名称。

  4. tail -n1 $f: tail是一个用于查看文件末尾内容的命令,-n1选项表示显示最后一行。$f是当前处理的文件名。

  5. | read -r _ || echo >> $f: 这是将tail命令的输出通过管道传递给另一个read命令的方式。-r选项告诉read命令不要对反斜杠进行转义处理。_表示read命令将读取tail的输出并将其存储在一个临时变量中(由于在此脚本中我们对该变量不感兴趣,所以用_表示忽略)。||是逻辑或操作符,用于在前一个命令失败时执行下一个命令。如果read命令(即tail的输出)返回非零退出状态(表示读取失败,也就是最后一行为空或不存在),则执行echo >> $f

  6. echo >> $f: 这是一个将空行添加到文件末尾的操作。>>表示将输出追加到指定文件中,而$f是当前处理的文件名。

综上所述,这个脚本的目的是检查每个文件的最后一行是否为空,如果是,则在该文件中添加一个空行。请注意,脚本中的操作可能会对文件进行更改,所以在使用之前请谨慎备份数据。

标签:空行,文件,read,最后,命令,tail,ls
From: https://www.cnblogs.com/chentiao/p/17572547.html

相关文章

  • [Joplin] git实现Joplin多PC端加密文件同步
    git实现Joplin多PC端加密文件同步场景一些笔记虽然不是什么重要的东西,但是需要加密一下同时也要在不同的PC端进行编辑(上班+下班)方案通过Joplin加密文件内容,将加密文件同步到本地Filesystem再通过git上传到代码托管平台步骤前提:已有项目仓库,会用......
  • android studio sd卡存放音频文件音频路径
    AndroidStudio中使用SD卡存放音频文件的路径对于Android开发者来说,使用SD卡存放音频文件是一项基本任务。在这篇文章中,我将向你展示如何在AndroidStudio中实现这个目标。整体流程下表展示了整个过程的步骤:步骤操作1在AndroidManifest.xml文件中添加SD卡读写权限......
  • UE虚幻引擎:生成云平台指定路径下的EXE文件
    市面上大量优秀的游戏都是基于UE制作的,UE虚幻引擎制作的作品可以在windows、mac、linux以及ps4、x-boxone、ios、android甚至是html5等平台上运行。本文介绍了UE虚幻引擎如何生成云平台指定路径下的EXE。一、云平台会运行打包文件夹下指定路径的EXE文件但有时候UE蓝图项目比较......
  • (转)JS判断文件大小
    第一种是应用ActiveX控件的实现,例如:Javascript代码<scripttype="text/javascript">functiongetFileSize(filePath){varfso=newActiveXObject("Scripting.FileSystemObject");alert("文件大小为:"+fso.GetFile(filePath).s......
  • Web实现浏览器端大文件分块上传
    ​ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。ASP.NET页面设计:TextBox和Button按钮。 ​编辑TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button......
  • 前端实现浏览器端大文件分块上传
    ​  上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败。一开始以为是session过期或者文件大小受系统限制,导致的错误。查看了系统的配置文件没有看到文件大小限制,web.xml中seesiontimeout是30,我把它改成了120。但还是不行,有时候10分钟就崩了。同事说,可能是客户这......
  • Kong API Gateway 配置文件详解
    一、前言Kong配置文件是Kong服务的核心文件,它配置了Kong以怎样的方式运行,并且依赖于这个配置生成Nginx的配置文件,本文通过解读Kong配置文件,以了解Kong的运行和配置。在成功安装Kong以后,会有一个名为kong.conf.default默认的配置文件示例,如果是通过包管理器安装的,通常位于/etc/k......
  • linux删除文件、文件夹
    linux删除文件夹  1、除文件夹实例:rm-rf/var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件、文件夹 2、删除文件使用实例:rm-f/var/log/httpd/access.log 将会强制删除/var/log/httpd/access.log这个文件......
  • asp.net中*.ashx文件的用法
    1首先添加一个ashx文件!开始:通过这几个步骤你可以添加一个新的ashx文件:打开你的ASP.NETwebsite;右击项目选择“AddNewItem...”;将显示一个“AddNewItem”的对话框,选择“GenericHandler”。此时,你就会得到一个新的ashx文件。2.自动生成代码我们需要注意的是在ashx文件中......
  • B/S实现浏览器端大文件分块上传
    ​ 一、功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息。支持文件夹批量上传下载,服务器端保留文件夹层级结构,服务器端......