如何在Bash中无需for循环为文件内字符串追加指定范围后缀
无需Bash循环的实现方案
最优方案:使用内置printf命令
Bash的printf内置命令会自动重复格式化模板直到所有参数处理完毕,无需手动编写循环:
# 通用安全写法,兼容文件内容含特殊格式字符的场景 content=$(<file) printf "%s %s\n" "$content" {001..003}
如果确认file中无%等printf格式控制字符,也可以直接简写为:
printf "$(<file) %s\n" {001..003}
其他可选实现
管道组合方案
# 用seq生成带前导零的序列,sed逐行追加前缀 seq -w 1 3 | sed "s/^/$(<file) /"
awk实现方案
# awk内部处理循环,无需Bash层面写循环 awk '{for(i=1;i<=3;i++) printf "%s %03d\n", $0, i}' file
内容的提问来源于stack exchange,提问作者pepelu
相关产品推荐
相关产品推荐

