LINUX.ORG.RU

echo и перевод строки


0

0

Помогите, не могу разобратся со скриптом. Есть участок

MATCH="$(ls $DIR | grep $PKG)"
NAME="$(echo $MATCH | sed "s/ /\n/g")"

echo $NAME

где echo выводит переменную в одну строку, что нежелательно. Вроде как замена пробелов на /n должна была помочь, но нет. Чяднт?

Если я тебя правильно понял, то бэкслеш нужно тоже экранировать. А вообще, лучше для этих целей использовать find.

Alan_Steel ★★
()

делай так echo -e $NAME

-e enable interpretation of backslash escapes

dinix
()

КАВЫЧКИ!

megabaks@desktop ~ $ export NAME="$(echo $PATH | sed "s/:/\n/g")" 
megabaks@desktop ~ $ echo $NAME 
/usr/lib/ccache/bin/ /usr/local/bin /usr/bin /bin /opt/bin /usr/i686-pc-linux-gnu/gcc-bin/4.5.1-pre9999 /usr/qt/3/bin /usr/lib/subversion/bin /usr/games/bin /opt/cuda/bin /opt/cuda/cudaprof/bin
megabaks@desktop ~ $ echo "$NAME"
/usr/lib/ccache/bin/
/usr/local/bin
/usr/bin
/bin
/opt/bin
/usr/i686-pc-linux-gnu/gcc-bin/4.5.1-pre9999
/usr/qt/3/bin
/usr/lib/subversion/bin
/usr/games/bin
/opt/cuda/bin
/opt/cuda/cudaprof/bin
megabaks@desktop ~ $ 

megabaks ★★★★
()

если что, то у меня в zsh вывел по одному слову на строку. В bash'е надо добавить кавычек: echo «$NAME»

name_no ★★
()
Ответ на: комментарий от akk

нет!

megabaks@desktop ~ $ export NAME="$(echo $PATH | tr ':' '\n')"  
megabaks@desktop ~ $ echo $NAME
/usr/lib/ccache/bin/ /usr/local/bin /usr/bin /bin /opt/bin /usr/i686-pc-linux-gnu/gcc-bin/4.5.1-pre9999 /usr/qt/3/bin /usr/lib/subversion/bin /usr/games/bin /opt/cuda/bin /opt/cuda/cudaprof/bin
megabaks@desktop ~ $ 
 

megabaks ★★★★
()
Ответ на: комментарий от legolegs

>tr легче и шустрее. Пустячок а приятно.
ну если так, то да :)

megabaks ★★★★
()

Кстати говоря:

┌[~]
└> TEST1="1 2 3 4"
┌[~]
└> TEST2=$(echo $TEST1 | sed 's/\ /\n/g')
┌[~]
└> echo $TEST2
1
2
3
4
┌[~]
└> [[ $BASH ]] && echo "It's bash version $BASH_VERSION"
It's bash version 3.2.39(1)-release

Без кавычек. Фокус в правильном значении IFS, которое обычно просто не задано, и используется пробел. Если установить, например, IFS=«\ \t\n», то проблема пропадает.

GotF ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.