linux - 如何使用 printf 打印多个变量
问题描述
我试图printf
在一行上输出多个变量。
难以处理printf
和接收意外结果的参数处理和格式。
代码片段
printf '%s %s %s' $infile $insize $indate 2>&1 | tee -a $logfile
find $infile -printf ' %p %s %CY-%Cm-%Cd %CH:%CM:%.2TS \n' 2>&1 | tee -a $logfile
意外结果
* 第一个文件大小未显示,日期和时间不正确 (printf)
* 第二个文件大小正确,日期和时间不正确 (find -printf)
ftp://ftp.ncbi.nlm.nih.gov/pub/README.ftp 2019-08-25 00:00:00 ./README.ftp 2037 2019-08-25 14:22:26
预期结果
ftp://ftp.ncbi.nlm.nih.gov/pub/README.ftp 2037 2015-08-12 15:47:26 ./README.ftp 2037 2019-08-24 20:32:53
远程文件
Last-Modified: Wed, 12 Aug 2015 15:47:26 GMT
Content-Length: 2037
本地文件
2037 Aug 13 2015 README.ftp
提前致谢。
解决方案
解决方案
printf '%s %d %s' "$infile" "$insize" "$indate" 2>&1 | tee -a "$logfile"
find "$infile" -printf ' %p %s %CY-%Cm-%Cd %CH:%CM:%.2TS \n' 2>&1 | tee -a "$logfile"
结果
ftp://ftp.ncbi.nlm.nih.gov/pub/README.ftp 2037 2015-08-12 15:47:26 ./README.ftp 2037 2019-08-24 20:32:53
man 1 printf
参数处理的清晰和简单的解释。
用于格式摘要的 GNU 手册输出转换表
推荐阅读
- javascript - websocket握手期间的Flask SocketIO错误:意外的响应代码:400
- google-cloud-platform - 谷歌云存储(GCS)检查过去版本的上传日期时间
- javascript - 语义发布 - 向自动生成的发布说明添加更多部分
- node.js - 崩溃后如何自动重启rabbitmq
- authentication - Teams Bot:用户记录的事件
- python - 从外部向卷积输出添加另一层
- julia - 在 julia 中声明和更改变量值的问题
- php - 在 yii 框架中创建时插入的数据如何存储在数据库中?
- go - 递归打印树状结构的完整列表时遇到一些问题
- unix - 如何用 2 个单词创建 kotlin 中缀函数?