我使用以下lftp脚本将文件从远程复制到本地:

env TERM=dumb script -a $LOGSTDOUT -c "$(cat <<- EOF
    lftp $PROTOCOL://$URL -u ${USER},${PASS} << EOFF
    set dns:fatal-timeout never
    set sftp:auto-confirm yes
    set mirror:use-pget-n 50
    set mirror:parallel-transfer-count 2
    set mirror:parallel-directories yes
    set mirror:include-regex $REGEX
    set log:enabled/xfer yes
    set log:file/xfer $LOG
    set xfer:use-temp-file yes
    set xfer:temp-file-name *.lftp
    mirror -c -v --loop --Remove-source-dirs "$REMOTEDIR" "$LOCALDIR"
    quit
    EOFF
EOF
)"

我正在使用script(1)实用程序捕获终端输出.env TERM=dumb只是我发现的一段随机代码,用于禁用ANSI转义码.

我的问题是输出日志(log)文件的换行符被静默损坏.它似乎在使用CR和LF.我发现了更多的信息here,这似乎是故意的.虽然我不确定该如何修复它.

These line endings cause issues when viewing the logs in lnav: enter image description here

The reason for this becomes quickly apparent upon inspecting the raw text: enter image description here

我考虑了一些可能的 Select ,但不确定如何实施:

  1. 修正script(1)实用程序的输出,以便将单个CR转换为LF.也许这可以通过铺设管道或一些争论来实现?
  2. lnav在图形用户界面中显示时将CR视为LF的技巧.

Anyone know how I can fix these line breaks so it shows correctly in 100?

推荐答案

try 更换

... script -a $LOGSTDOUT ...

使用

... script -a >(tr -d '\r' >"$LOGSTDOUT") ...

Linux相关问答推荐

Microsoft ODBC Driver 18 for Python Docker Image,ARM设备;生成错误

如何将参数传递给Bash函数

如何正确Forking 并完成进程以避免 EAGAIN 错误

重新运行时避免 Linux bash 脚本中的文件重命名重复

ln命令报错target not a directory

如何使用适用于 Linux 的 Dockerized SQL Server 设置 MSDTC

在 bash 中查找匹配多个模式的文件

ftell 在文件描述符上?

在 Linux 中 Select 多个同名的可执行文件

如何在 Linux 中向应用程序发出信号而不杀死它?

Java 8 上的 SQL Server JDBC 错误:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接

如何使目录下的所有文件在linux上可读?

如何在不重新打印的情况下更新终端中的打印消息

如何通过 ssh 判断 ubuntu 服务器上是否存在 php 和 apache

在 Linux 上的进程之间传递消息的最快技术?

从核心转储中获取堆栈跟踪

/var 中有什么?

有什么方法可以在linux中保留但不提交内存?

conda 命令会提示错误:Bad Interpreter: No such file or directory

如何在 IE 中使用 Linux 进行测试