我有以下printf命令,该命令可以正常工作,在字符串ABC
后面添加5个空格,然后打印字符串“ DEF”。
printf '%s%*s' "ABC" 5 '' "DEF"
我想在字符串DEF
之后的末尾添加换行符,但是我不知道该怎么做。我尝试过以下方式但没有成功:
user /d
$ printf '%s%*s' "ABC" 5 '' "DEF\n"
ABC DEF\n
user /d
$ printf '%s%*s\n' "ABC" 5 '' "DEF"
ABC
DEF
应该怎么做?预先感谢
答案 0 :(得分:4)
为DEF添加另一个String占位符和换行符:
printf '%s%*s%s\n' "ABC" 5 '' "DEF"
答案 1 :(得分:2)
您可以使用$'\n'
换行符:
printf '%s%*s' "ABC" 5 '' $'DEF\n'
它不适用于
printf '%s%*s\n' "ABC" 5 '' "DEF"
因为printf
格式比总参数少一。首先%s
用于ABC
,然后%*s
用于输出5个空格。但是DEF
没有格式,因此\n
被附加到两个参数上。