我想使用 shell 脚本将文本添加到文件中。我知道的解决方案是,如果您想将文本插入换行符(附加):
echo "mytext" >> myfile.txt
我希望在流程结束时有一个连续的文本。
for ((I=0; I <72 ; I++))
do
echo "mytext$I, " >> myfile.txt ?????
done
我想要这样的东西:
mytext0, mytext1, mytext2, mytext3, ...., mytext71
但我得到的是:
mytext0,
mytext1,
....
mytext71
答案1
在bash
(以及外壳中支撑支架扩张), 你可以做:
printf '%s\n' "$(printf 'mytext%s\n\n' {1..71})" | paste -sd', ' - >out
在 POSIX shell 中:
printf '%s\n' "$(
n=1
while [ "$n" -le 71 ]; do
printf 'mytext%s\n\n' "$n"
n=$((n+1))
done
)" | paste -sd', ' - >out
答案2
您只需要确保不要在输出末尾附加换行符:只需替换echo
为echo -n
或printf
。我推荐后者,因为它更便携。