Bash: Как чтобы избежать пробела в начале строки?

Для такой команды в bash:

echo -e "a b "{1..3}" d e\n"
a b 1 d e
 a b 2 d e
 a b 3 d e

вывод строки 2 ... начинается с пробела. Почему это? Откуда это взялось? Как мне этого избежать?

Я знаю, как избавиться от этого с помощью sed или чего-то еще, но я бы предпочел избегать этого в первую очередь.

Я только упомянул об этом вместе с {..} - Синтаксисом. Есть ли другие подобные случаи без него?

обновление:

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

echo -e "\ba b "{1..3}" d e\n"

или, как предлагает Джаред Нг: ​​

echo -e "\ra b "{1..3}" d e\n"

обновление 2:

Мы избавляемся от ведущих символов новой строки с помощью:

echo -e "\na b "{1..4}" d e" | sed '1d'
echo -e "\na b "{1..4}" d e" | tail -n +2

или в конце:

echo -e "\ba b "{1..3}" d e\n" | sed '$d'
echo -e "\ba b "{1..3}" d e\n" | head -n 3
5
задан user unknown 15 August 2011 в 18:08
поделиться