使用 bash 脚本将文本插入文件(不追加)

使用 bash 脚本将文本插入文件(不追加)

我想使用 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

您只需要确保不要在输出末尾附加换行符:只需替换echoecho -nprintf。我推荐后者,因为它更便携。

相关内容