如何使用printf在行尾添加换行符?

时间:2020-02-11 15:59:05

标签: bash printf

我有以下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

应该怎么做?预先感谢

2 个答案:

答案 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被附加到两个参数上。

相关问题