使用 printf 格式化定向到 .txt 文件的输出

问题描述 投票:0回答:2

我有以下代码,它将 94 个 x 插入到 .txt 文件中:

printf 'x%.0s' {1..94}

是否可以在输出 94 个 x 之前合并插入的新行?

我已经尝试过:

printf '\n x%.0s' {1..94}
printf "\n x%.0s" {1..94}

但我无法让它工作。

我可以在上面的代码行中使用

echo -e "\n"
,但是这是重复出现的代码行,如果可能的话我更愿意将其合并为一个

bash printf
2个回答
1
投票

简单明了的解决方案是先做一个,然后再做另一个。

printf 'x%.0s' {1..94} >file
printf '\n' >>file

在文本之前打印换行符很奇怪,但如果您确实需要它,只需交换语句即可。请注意,第一个创建带有 >

 的文件,第二个附加 
>>
;显然,不要交换重定向。

如果你想避免重复,请将其放入函数中。

ninetyfourx () { printf 'x%.0s' {1..94} printf '\n' } ninetyfourx >file ninetyfourx >another
    

1
投票
以下是如何通过单个

printf

 实现此目的(与 
bash
 配合使用):

printf '%.1s' $'\n' x{1..94}

代码:

printf '%.1s' $'\n' x{1..10} xxxxxxxxxx
PS:请注意,在此示例中我使用了

10

,以便能够通过生成的输出显示工作方法。

说明:

  • $'\n'
    :将发出换行符
  • x{1..10}
     将生成以下输出:
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10

printf

 格式 
%.1s
 将打印输入参数中的第一个字母,即 
\n
x
printf

© www.soinside.com 2019 - 2024. All rights reserved.