Добавление символа к любой текстовой строке

Существует причина, этот ebuild был удален из основного дерева. Если Ваша цель состоит в том, чтобы сохранить ebuild, потому что Вы хотите смочь создать их после того, как они удалены из основного дерева, то я предлагаю, чтобы Вы создали локальное наложение и извлекли удаленный ebuilds из sources.gentoo.org.

4
08.09.2014, 21:27
7 ответов
sed '1,${s/^/>/g;n;n;n}' filename

Тестирование

cat filename
'Sunshine

'This is a sunny day.

'Darkness

'A cave is a dark place

'Sunshine

'This is a sunny day.

'Darkness

'A cave is a dark place

'Sunshine

'This is a sunny day.

'Darkness

'A cave is a dark place

После выполнения команды я получаю вывод как,

sed '1,${s/^/>/g;n;n;n}' new
>'Sunshine

'This is a sunny day.

>'Darkness

'A cave is a dark place

>'Sunshine

'This is a sunny day.

>'Darkness

'A cave is a dark place

>'Sunshine

'This is a sunny day.

>'Darkness

'A cave is a dark place
0
27.01.2020, 20:49

Без пустых строк между каждой строкой и без символа ' в начале:

$ awk '{print ((NR%2)? ">":"") $0}' passages.txt

дает:

>Sunshine
This is a sunny day.
>Darkness
A cave is a dark place.

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

0
27.01.2020, 20:49

Для редактирования всех других (каждая вторая) строка, начиная с первого, с GNU SED , выполните

sed '1~2s/^/>/' your_file

Это напишет модифицированный файл на стандартный выход Отказ I.E., если вы напечатаете , только вышеупомянутый, модифицированный файл будет отображаться на экране. Вы можете поместить это в новый файл через , перенаправляющий вывод с > ; E.G.,

sed '1~2s/^/>/' your_file > your_new_file

Или, если вы хотите изменить существующий файл, используйте -I :

sed -i '1~2s/^/>/' your_file
4
27.01.2020, 20:49

с awk Вы можете попробовать что-то вроде,

awk 'NR % 4 == 1 {sub(/^/,">")} {print}' filename

ссылки

https://stackoverflow.com/questions/2099471/Add-a-prefix-string - начало каждой линии

0
27.01.2020, 20:49

POSIXly:

sed 's/^/>/;n' < file.in > file.out
3
27.01.2020, 20:49

Другой ответ POSIX:

paste -d'>\n' /dev/null - - <infile

Он получает:

>Sunshine
This is a sunny day.
>Darkness
A cave is a dark place.
2
27.01.2020, 20:49

Вы можете использовать Vim в режиме Ex:

ex -sc '%s/\v(.*\n){2}/> &/|x' file
  1. % выбрать все строки

  2. s заменить

  3. \ v включить магию

  4. x сохранить и закрыть

0
27.01.2020, 20:49

Теги

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