Оберните строку, используя `sed` - PullRequest
0 голосов
/ 20 апреля 2020

Мне нужна одна помощь, чтобы получить вывод, как показано ниже,

b=`'1,2,3,4,5,6' | <using sed>`

echo $b

значение b Я ожидаю, как показано ниже:

1,2
3,4
5,6

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Следующее решение может дать сбой:

# Wrong:  
echo "1,2,3,4,5,6" | grep -Eo "[^,]+,[^,]*"
# Works here, but fails for "1,2,,4,5,6"

Возможно, лучше для вашей ситуации это

echo "1,2,3,4,5,6" | tr "," "\n" | paste -d"," - -
1 голос
/ 20 апреля 2020
$ sed 's/\([^,]*,[^,]*\),/\1\n/g' <<< "1,2,3,4,5,6"
1,2
3,4
5,6

Также вы должны прочитать Почему $ (...) предпочтительнее, чем `...` (обратные метки)? в bash FAQ (Это применимо, даже если вы не используя bash)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...