【问题标题】:Remove All Trailing Newlines Before Appending To File在附加到文件之前删除所有尾随换行符
【发布时间】:2020-09-19 03:58:19
【问题描述】:

我正在编写一个 bash 脚本,它将在用户生成的文件中附加几行。我正在使用这种方法做附件:

write_imports() {
    cat << EOF
# Install for ${package_name}
import ${package_name}

EOF
}

main(){
    imports=$(write_imports)
    echo "$imports" | tee -a $file

}

我正在尝试解决一个美学问题,有时用户的文件会在文件末尾有大量换行符。这意味着当我运行我的脚本时,我们会得到如下结果:

15: "some user code"
16: 
17:
18:
19:
20:# Install for my_package
21:import my_package

当我想要的结果更清晰时:

15: "some user code"
16:# Install for my_package
17:import my_package

我想确保不会从用户代码中删除任何换行符/空格。我只想剪掉最后的尾行。

任何帮助将不胜感激!

【问题讨论】:

    标签: linux bash


    【解决方案1】:

    清除文件末尾的空行:

    awk:

    awk '/^$/ {n=n "\n";next;} {printf "%s",n; n=""; print;}' your_file
    

    sed:

    sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba' < your_file
    #or
    cat your_file | sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba'
    

    【讨论】:

      猜你喜欢
      • 2022-11-21
      • 2013-02-10
      • 2021-12-29
      • 2011-04-01
      • 2019-10-12
      • 2012-12-09
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多