Используйтеa=unstable
(совпадение комплекта )илиn=sid
(соответствие кодового имени )в конфигурации выводов на основе выпуска -; a=sid
ничему не соответствует, см. man apt_preferences
.
Для этого вы можете использовать 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
Используя 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
С помощью одного вызова GNU sed
:
seq 5 |sed 's/.*/0\n&\n0/'
То же в стандартном синтаксисе sed
:
seq 5 |sed 's/.*/0\
&\
0/'
Использованиеawk
:
awk '{ print "0" ORS $0 ORS "0" }' < input
или:
awk '{ print "0"; print $0; print "0" }' < input
Для меня это прямая -реализация «печатать ноль до и после каждой строки» в awk.
Использование стандартаsed
:
sed -e 's/^/0\
/' -e 's/$/\
0/' file
Это вставляет 0
, за которым следует символ новой строки в начале и которому предшествует символ новой строки в конце каждой строки.
Использование 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;'
На любом sed:
printf '%d\n' 1 2 3 | sed -e 'G;s/\(.*\)\(.\)/0\2\1\20/'
G
добавит пустое пространство хранения (плюс новую строку )к пространству шаблона. \1
(.*
)\2
(.
). \2
— новая строка, а \1
— исходная строка. 0
's :0\2\1\20
(, которые могут быть прочитаны как0\n\1\n0
).