Hot是否通过sed命令将stdout替换为最后一个控制字符的最后一行



我想替换(删除(ls命令stdout结果中最后一个控制字符newline的最后一行。我尝试过的sed命令是:

ls | sed '$ s/[[:cntrl:]]$//'
ls | sed '$ s/[[:graph:]]$//'
ls | sed '$ s/[[:print:]]$//' 

我想要的结果就像这个结果ls | head -c -1

我的sed命令有什么问题吗?谢谢

这可能对你有用(GNU sed(:

sed -z 's/n$//' file

sed在当前行以换行符终止时会自动添加换行符,我不知道如何关闭这种行为。

您可以尝试一种不同的方法:捕获命令的输出(命令替换语法去掉尾部换行符(;然后在没有换行的情况下打印

printf '%s' "$(ls)"

最新更新