我正在编写一个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
我想确保我没有从用户代码中删除任何换行符/空格。我只想剪掉最后的尾随行。
任何帮助将不胜感激!
答案 0 :(得分: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'