Вставка нуля до и после точки данных

Используйтеa=unstable(совпадение комплекта )илиn=sid(соответствие кодового имени )в конфигурации выводов на основе выпуска -; a=sidничему не соответствует, см. man apt_preferences.

0
03.11.2020, 07:53
7 ответов

Для этого вы можете использовать GNU sed. ^для соответствия началу строки и $для конца:

sed 's/^/0\n/; s/$/\n0/'
printf "1\n2\n3\n" | sed 's/^/0\n/; s/$/\n0/'
0
1
0
0
2
0
0
3
0
0
18.03.2021, 22:52

Используя GNU sed, i вставить ноль и a добавить ноль в каждую строку:

sed -e 'i\0' -e 'a\0' data

Пр.

$ printf '%d\n' 1 2 3 | sed -e 'i\0' -e 'a\0'
0
1
0
0
2
0
0
3
0
4
18.03.2021, 22:52

С помощью одного вызова GNU sed:

seq 5 |sed 's/.*/0\n&\n0/'

То же в стандартном синтаксисе sed:

seq 5 |sed 's/.*/0\
&\
0/'
2
18.03.2021, 22:52

Использованиеawk:

awk '{ print "0" ORS $0 ORS "0" }' < input

или:

awk '{ print "0"; print $0; print "0" }' < input

Для меня это прямая -реализация «печатать ноль до и после каждой строки» в awk.

5
18.03.2021, 22:52

Использование стандартаsed:

sed -e 's/^/0\
/'  -e 's/$/\
0/' file

Это вставляет 0, за которым следует символ новой строки в начале и которому предшествует символ новой строки в конце каждой строки.

0
08.04.2021, 15:42

Использование Raku (, ранее известного как Perl _6)

raku -ne 'put "0\n$_\n0";'

ИЛИ

raku -ne 'put qq[0\n$_\n0];' 

ИЛИ ДАЖЕ:

raku -ne 'put "0\n", $_, "\n0";'

Пример ввода:

1
2
3
4
5

Пример вывода:

0
1
0
0
2
0
0
3
0
0
4
0
0
5
0

Это довольно просто: тематическая переменная Raku $_соответствующим образом оформлена до -и -после. Поскольку ~тильда используется в Raku для конкатенации строк, замена может быть записана как "0\n" ~ $_ ~ "\n0", если это более читабельно, (также при желании можно добавить скобки/круглые скобки ).

Некоторые из тонкостей, которые вы получаете, используя Raku, — это простое расширение до более сложных замен --, например, --добавление условного выражения для удаления пустых строк:

Сохранить пустые строки:

raku -ne 'put ["0\n" ~ $_ ~ "\n0"];'

Удалить пустые строки:

raku -ne 'put ["0\n" ~ $_ ~ "\n0"] if.chars;'   

https://raku.org/

0
19.09.2021, 00:18

На любом sed:

printf '%d\n' 1 2 3 | sed -e 'G;s/\(.*\)\(.\)/0\2\1\20/'
  • Инициал Gдобавит пустое пространство хранения (плюс новую строку )к пространству шаблона.
  • Затем мы можем захватить все пространство шаблонов (без завершающей новой строки )в\1(.*)
  • И завершающий символ новой строки в\2(.).
  • Тогда \2— новая строка, а \1— исходная строка.
  • Re -упорядочение и добавление 0's :0\2\1\20(, которые могут быть прочитаны как0\n\1\n0).
0
20.09.2021, 00:27

Теги

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