gpt4 book ai didi

linux - 如何从标准输出和标准错误中删除 ^M

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:29 25 4
gpt4 key购买 nike

我从 ksh 脚本运行 inventury.expect(expect 脚本),

然后我将标准输出和标准错误传输到日志文件 -/tmp/VM.log

到现在一切都还好

  #!/bin/ksh

.
.
.

/var/tmp/inventury.expect 1>> /tmp/VM.log 2>> >>/tmp/VM.log


.
.
.

但是当我查看日志文件时,我看到分配了控制 M (^M)

所以我添加如下 tr 命令,以便从 standard out/err 中删除 ^M

  /var/tmp/inventury.expect 1>> | tr -d "^M" /tmp/VM.log 2>> | tr -d "^M"  >>/tmp/VM.log

但这似乎并不违法

我得到:(当我运行我的 ksh 脚本时)

  syntax error near unexpected token `|' ,    when I run the ksh script

请指教我们如何从标准输出和标准错误中删除 ^M ??

最佳答案

您使用 tr 是正确的想法,但要删除的字符不会用 ^M 指定。这些控制字符表示的是回车符,您在 shell 中用 \r 指定。因此,将您对 tr -d "^M" 的使用替换为:

tr -d '\r'

将它放在 expect 脚本之后,将 tr 的输出重定向到文件:

/tmp/inventury.expect | tr -d '\r'  1>> /tmp/VM.log 2>> /tmp/VM.log

关于linux - 如何从标准输出和标准错误中删除 ^M,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24673321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com