热通过 sed 命令替换 stdout 最后一个控制字符的最后一行?
Hot to replace the stdout the last line of the last control character via sed command?
我想替换(删除)最后一个控制字符的最后一行 newline
形成 ls
命令标准输出结果。
我试过的 sed 命令是:
ls | sed '$ s/[[:cntrl:]]$//'
ls | sed '$ s/[[:graph:]]$//'
ls | sed '$ s/[[:print:]]$//'
我想要的结果像这样的结果ls | head -c -1
我的 sed 命令有什么问题吗?
谢谢!
如果当前行以换行符终止,sed 似乎会自动添加换行符,但我不知道如何关闭该行为。
您可以尝试不同的方法:捕获命令的输出(命令替换语法去除尾随换行符);然后在没有换行符的情况下打印它
printf '%s' "$(ls)"
这可能适合您 (GNU sed):
sed -z 's/\n$//' file
我想替换(删除)最后一个控制字符的最后一行 newline
形成 ls
命令标准输出结果。
我试过的 sed 命令是:
ls | sed '$ s/[[:cntrl:]]$//'
ls | sed '$ s/[[:graph:]]$//'
ls | sed '$ s/[[:print:]]$//'
我想要的结果像这样的结果ls | head -c -1
我的 sed 命令有什么问题吗? 谢谢!
如果当前行以换行符终止,sed 似乎会自动添加换行符,但我不知道如何关闭该行为。
您可以尝试不同的方法:捕获命令的输出(命令替换语法去除尾随换行符);然后在没有换行符的情况下打印它
printf '%s' "$(ls)"
这可能适合您 (GNU sed):
sed -z 's/\n$//' file