Вот еще один способ. Первая часть выражения sed захватывает каждый символ, а затем заменяет его символом и амперсандом. Вторая часть удаляет амперсанд с конца строки.
echo 12345 | sed -r 's/(.)/\1\&/g;s/\&$//g'
1&2&3&4&5
Работает и с многобайтовыми символами.
В оболочке zsh
шаблон подстановки
/dir/**/*(.DOL[1,20])
будет расширяться до пути к 20 самым большим файлам в каталоге или ниже него/dir
(со скрытыми именами, которые также будут учитываться, а символически связанные файлы будут игнорироваться ).
Части квалификатора glob (.DOL[1,20])
означают:
.
:Рассматривайте только обычные файлы. D
:Также рассмотрите файлы со скрытыми именами (подобно эффекту dotglob
вbash
). OL
:Упорядочить результат в порядке убывания размера файла(O
= убывающий порядок, а не o
= возрастающий; L
= "длина" ). [1,20]
:Возвращает 20-й первый элемент, до которого расширяется глобус. Шаблон **
соответствует «рекурсивно», поэтому /dir/**/*
сам по себе будет соответствовать любому имени в каталоге /dir
или ниже него.
Использование сls
:
ls -l -f /dir/**/*(.DOL[1,20])
Вам нужно будет использовать -f
с ls
, чтобы остановить сортировку отображаемого списка.
Или для вызова du
файлов:
du /dir/**/*(.DOL[1,20])