Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在附加到文件之前删除所有尾随的换行符_Linux_Bash - Fatal编程技术网

Linux 在附加到文件之前删除所有尾随的换行符

Linux 在附加到文件之前删除所有尾随的换行符,linux,bash,Linux,Bash,我正在编写一个bash脚本,它将在用户生成的文件中附加几行。我用这种方法做附属物: write_imports() { cat << EOF # Install for ${package_name} import ${package_name} EOF } main(){ imports=$(write_imports) echo "$imports" | tee -a $file } 当我想要的是一个更干净的结果时: 15: &

我正在编写一个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:# Install for my_package
17:import my_package
我想确保我没有从用户代码中删除任何换行符/空格。我只想剪掉最后一行

任何帮助都将不胜感激

要清除文件末尾的空行,请执行以下操作: 使用
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'
sed-e:a-e'/^\n*$/{$d;n;}/\n$/ba'<您的\u文件
#或
cat您的|u文件| sed-e:a-e'/^\n*$/{$d;n;}/\n$/ba'
sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba' < your_file
#or
cat your_file | sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba'