如何让echo生成的day{1..360}按换行输出并写入文件?命令未达预期
解决方法
echo -e day{1..360}会把所有day1到day360以空格分隔的形式输出,既不会自动换行,也缺少你需要的- 前缀,所以达不到预期效果。你可以用以下几种方式实现需求:
方法一:使用printf命令(最简洁)
printf "- day%d\n" {1..360} > dif2.txt
printf的格式字符串"- day%d\n"会为每个数字添加- day前缀并自动换行,{1..360}会展开为1到360的连续数字,最终直接生成符合要求的内容并写入文件。
方法二:使用for循环
for i in {1..360}; do echo "- day$i"; done > dif2.txt
通过循环遍历1到360的每个数字,每次输出带- 前缀的字符串,最后将所有输出重定向到文件中。
方法三:修改已有输出(如果已执行过原echo命令)
如果已经用原命令生成了包含空格分隔的day1 day2 ... day360的内容,可以用sed处理:
echo day{1..360} | sed 's/ /\n- /g' | sed 's/^/- /' > dif2.txt
先把空格替换成换行加- ,再给开头补上- ,最终得到符合格式的内容。
内容的提问来源于stack exchange,提问作者Barbrik
相关产品推荐
相关产品推荐

