【问题标题】:How to insert blank line using Linux Shell Script together with Python Script?如何使用 Linux Shell 脚本和 Python 脚本插入空行?
【发布时间】:2021-03-24 08:48:51
【问题描述】:

我目前正在将 Python 脚本输出重定向到 Linux 中的日志文件 (log)

Python 脚本示例(example.py):

print("output")

Shell 脚本:

python3 example.py >> log

当我在运行 example.py 几次后检查日志内容 (cat log) 时,我得到:

output
output
output

所以,我想在下一个“输出”条目之前添加一个空行。想要的职位是:

output

output

output

为了实现这一点,我应该在 Shell 脚本中做些什么不同的事情(不是编辑 example.py)?

谢谢


更新:

example.py:

print("output1")
print("output2")

第一次运行 python3 example.py | sed 's/$/\n/' >> log 时,我得到:

output1

output2

第二次运行时:

output1

output2

output1

output2

我需要达到:

output1
output2

output1
output2

【问题讨论】:

    标签: python linux shell io


    【解决方案1】:

    一种可能的解决方案是:

    python3 example.py >> log && echo >> log
    

    这将追加 Python 脚本的输出,并且 之后追加一个额外的空行。

    如果你想在python脚本的每个输出之前附加一个额外的空行:

    echo >> log && python3 example.py >> log
    

    这将附加一个空行,然后是 python 脚本的输出。

    【讨论】:

      【解决方案2】:

      您可以在脚本执行完成后添加echo 以添加尾随换行符:

      (python3 example.py; echo) >> log
      

      【讨论】:

      • 感谢您的回答。我运行了您的建议('python3 example.py | sed 's/$/\n/' >> log'),但是,我的原始文件在日志文件中打印出超过 1 行。我注意到“sed”语句在我的每个打印结果之后添加了 1 个空白行。有没有办法在所有打印结果结束后添加一个空行?我更新了我原来的问题以说明这一点。谢谢
      • @Nunes 我已经编辑了我的答案,所以它现在应该可以工作了。
      • 您可以使用{} 来避免产生子shell。
      猜你喜欢
      • 2013-12-30
      • 2017-06-23
      • 2015-07-22
      • 2018-07-19
      • 1970-01-01
      • 2014-03-26
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多