Как добавить строки в одну строку вместо создания новой строки?

Перенаправление в файл очень полезно для добавления строки в виде новой строки в файл, например

echo "foo" >> file.txt
echo "bar" >> file.txt

Результат:

foo
bar

Но можно ли перенаправить строку в ту же строку в файле?

Пример:

echo "foo" <redirection-command-for-same-line> file.txt
echo "bar" <redirection-command-for-same-line> file.txt

Результат:

foobar

Ответ 1

Новая строка добавляется echo, а не перенаправлением. Просто переведите переключатель -n в echo, чтобы отключить его:

echo -n "foo" >> file.txt
echo -n "bar" >> file.txt

-n не выводить конечную новую строку

Ответ 2

Альтернативный способ эхо-результатов в одну строку состоит в том, чтобы просто присваивать результаты переменным. Пример:

j=$(echo foo)
i=$(echo bar)
echo $j$i
foobar
echo $i $j
bar foo

Это особенно полезно, когда у вас есть более сложные функции, возможно, сложный оператор awk, чтобы вытащить определенную ячейку в строке, а затем соединить ее с другим набором.