我想替换(删除(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)"