[英]Looping through output of docker bash command
我试图循环这样一个 docker bash 命令: sudo docker exec -it my-container bash -c "cd sites && ls" > output.txt
这给了我预期的输出,当我循环它时: cat output.txt | while read line do echo "abcd${line}def"; done
cat output.txt | while read line do echo "abcd${line}def"; done
cat output.txt | while read line do echo "abcd${line}def"; done
它给了我输出:
defdfile1
defdfile2
简而言之,它在文件名后重叠如果我在没有 docker 命令的情况下执行所有这些操作,例如在我的主机上仅使用 ls 它可以正常工作,如何解决此问题?
当使用-t
标志 docker 输出到标准输出时,添加回车符。 它用cat -vte output.txt
显示为^M
。 ( -v
, --show-nonprinting
使用 ^ 或 M- 符号显示非打印字符)
此回车符会破坏格式,并且未正确处理行。 从命令中删除-t
标志以获得正确的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.