Как вставить новую строку перед шаблоном?

вы можете использовать менеджер компоновки с компоновкой сетки и декаратором элементов пространства сетки для вашего решения. Простой пример сетки Android с использованием RecyclerView с GridLayoutManager (как и старый GridView) Еще один вариант, если вам нужно расширить свои атрибуты. Вы можете использовать для помощи некоторые сторонние библиотеки. Просто, как показано ниже. https://github.com/alibaba/vlayout

125
задан Dennis 27 October 2019 в 22:54
поделиться

3 ответа

Некоторые из других ответов не работали на мою версию sed. Переключение положения & и \n действительно работал.

sed 's/regexp/\n&/g' 

Править: Это, кажется, не работает над OS X, если Вы не устанавливаете gnu-sed.

40
ответ дан 24 November 2019 в 00:57
поделиться

В sed Вы не можете добавить новые строки в потоке вывода легко. Необходимо использовать строку продолжения, которая является неловкой, но она работает:

$ sed 's/regexp/\
&/'

Пример:

$ echo foo | sed 's/.*/\
&/'

foo

Посмотрите здесь для деталей. Если Вы хотите что-то немного менее неловкое, Вы могли бы попытаться использовать perl -pe с группами соответствия вместо sed:

$ echo foo | perl -pe 's/(.*)/\n$1/'

foo

$1 относится к первой подобранной группе в регулярном выражении, где группы находятся в круглых скобках.

32
ответ дан 24 November 2019 в 00:57
поделиться

в sed можно сослаться на группы в шаблоне с "\1", "\2".... поэтому, если шаблоном, который Вы ищете, является "ШАБЛОН", и Вы хотите вставить, "ПРЕЖДЕ" перед ним, можно использовать без выхода

sed 's/(PATTERN)/BEFORE\1/g'

т.е.

  sed 's/\(PATTERN\)/BEFORE\1/g'
1
ответ дан 24 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

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