Как запретить команде разбивать вывод на несколько строк?

Чтобы удалить все повторяющиеся символы (, сохранив только первое вхождение ), вzsh:

$ s="There are seven pencils"
$ printf '%s\n' ${(j::)${(s::u)s}}
Ther asvnpcil

Этот подход нельзя использовать, если вы хотите исключить некоторые символы из этого дублирования de -(, например символ пробела в вашем примере ).

  • s::разделить пустую строку, чтобы разбить строку на символьные составляющие , как это делают некоторые реализации awkс пустойFS
  • u:уникальный :удалить дубликаты в результирующем массиве
  • j:::объединить элементы массива с пустыми строками между ними.

-1
11.02.2020, 15:35
2 ответа

Попробуйте (Пример после 10 символов):

echo "asjdajsdoiajsodijaosidjaoijsdoaijoasjoadi" | sed -e "s/.\{10\}/&\n/g"
1
28.04.2021, 23:23

То, как yourappзаписывает вывод, является его собственным решением. Вы можете массировать вывод (, как сказано в другом ответе ), но чтобы изменить формат вывода, вам нужно изменить yourapp.

0
28.04.2021, 23:23

Теги

Похожие вопросы