Bash 添加换行符(如果缺少)

标签 bash

我很难理解以下代码:

    lastline=$(tail -n 1 $bc; echo x); lastline=${lastline%x}
    if [ "${lastline: -1}" != $'\n' ]; then
        echo >> $bc
    fi

我想这都是关于在文件 $bc 中添加 \n 如果最后一行还不是的话。但是 echo xlaSTLine%x${laSTLine: -1} 对我来说根本没有意义。我错过了什么?

文件$bc仅包含如下行:

Sample1,ATAGFAT

最佳答案

这基本上是检查您的文件 $bc 是否不以换行符结尾,然后在其中添加换行符。

  • tail -n 1 $bc; echo x - 打印文件 $bc 的最后一行,然后打印文字 x
  • ${laSTLine%x) - 从文件数据中删除 x $laSTLine
  • "${laSTLine: -1}" - 从变量 $laSTLine 读取最后一个字符
  • "${laSTLine: -1}"!= $'\n' - 将最后一个字符与换行符进行比较
  • echo >> $bc 如果上述检查失败则添加换行符

关于Bash 添加换行符(如果缺少),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618582/

相关文章:

linux - 用于在特定时间间隔运行两个命令的 Bash 脚本

C 到 NASM 转换

string - 如何以编程方式将 MAC 地址插入/etc/network/interfaces?

bash - USB 供应商和产品 ID 到设备绑定(bind)

java/javac -version 命令响应没有任何内容

bash - 使用 compgen 获取另一个命令的自动完成功能,使用哪个标志?

bash - 设置-eu时未绑定(bind)变量不会导致从子shell退出

bash - 如何在bash中输出两个日期之间的数据?

linux - `find'如何计算文件的大小?

linux - 如何在 linux (cent os) 中通过 sed 编辑特定行并替换文本