Mar*_*agh 10 bash printf zsh pipe
我疯狂地试图理解这个简单示例(zsh 或 bash)的问题是什么:
echo -n "6842" | printf "%'d"
Run Code Online (Sandbox Code Playgroud)
输出是0......为什么呢?我希望输出是6,842
预先感谢,我现在使用谷歌试图解决这个问题一个小时了,但没有运气......!
use*_*342 23
printf不从标准输入读取格式参数,而是直接从命令行读取参数。例如,这有效:
$ printf "%'d" 6842
6,842
Run Code Online (Sandbox Code Playgroud)
您可以使用命令替换将命令的输出转换为命令行参数:
$ printf "%'d" $(echo -n 6842)
6,842
Run Code Online (Sandbox Code Playgroud)
如果要printf在管道内部调用,可以使用xargs读取输入并printf使用适当的参数执行:
echo -n "6842" | xargs printf "%'d"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9679 次 |
| 最近记录: |