Подтвердить что ты не робот

Как вложить каждую строку в файл в двойные кавычки с sed?

Это то, что я пробовал: sed -i 's/^.*/"$&"/' myFile.txt

Он помещает $в начало каждой строки.

4b9b3361

Ответ 1

здесь

sed 's/\(.*\)/"\1"/g'

Ответ 2

меньше

sed 's/.*/"&"/'

без пробелов

sed 's/ *\(.*\) *$/"\1"/'

пропустить пустые строки

sed '/^ *$/d;s/.*/"&"/'

Ответ 3

Ты почти все понял. Попробуйте слегка измененную версию:

sed 's/^.*$/"&"/g' file.txt

Ответ 4

Вы также можете сделать это без группы захвата:

sed 's/^\|$/"/g'

'^' соответствует началу строки, а "$" соответствует концу строки.

| - это "чередование", это просто означает "ИЛИ". Это нужно избегать здесь [1], поэтому на английском языке ^\|$ означает "начало или конец строки".

"Замена" этих символов в порядке, он просто добавляет текст к началу в конце, поэтому мы можем заменить " и добавить g в конец для глобального поиска, чтобы он совпал сразу.

[1] К сожалению, оказывается, что | не является частью POSIX "Основные регулярные выражения", но является частью "расширенной" функциональности, которая может быть скомпилирована с помощью знака REG_ENHANCED, но по умолчанию не используется в OSX, поэтому вы более безопасны с соответствующей базовой группой захвата, такой как s/^\(.*\)$/"\1"/

Скромный пирог для меня сегодня.