Ответ 1
здесь
sed 's/\(.*\)/"\1"/g'
Это то, что я пробовал: sed -i 's/^.*/"$&"/' myFile.txt
Он помещает $в начало каждой строки.
здесь
sed 's/\(.*\)/"\1"/g'
меньше
sed 's/.*/"&"/'
без пробелов
sed 's/ *\(.*\) *$/"\1"/'
пропустить пустые строки
sed '/^ *$/d;s/.*/"&"/'
Ты почти все понял. Попробуйте слегка измененную версию:
sed 's/^.*$/"&"/g' file.txt
Вы также можете сделать это без группы захвата:
sed 's/^\|$/"/g'
'^' соответствует началу строки, а "$" соответствует концу строки.
|
- это "чередование", это просто означает "ИЛИ". Это нужно избегать здесь [1], поэтому на английском языке ^\|$
означает "начало или конец строки".
"Замена" этих символов в порядке, он просто добавляет текст к началу в конце, поэтому мы можем заменить "
и добавить g
в конец для глобального поиска, чтобы он совпал сразу.
[1] К сожалению, оказывается, что | не является частью POSIX "Основные регулярные выражения", но является частью "расширенной" функциональности, которая может быть скомпилирована с помощью знака REG_ENHANCED, но по умолчанию не используется в OSX, поэтому вы более безопасны с соответствующей базовой группой захвата, такой как s/^\(.*\)$/"\1"/
Скромный пирог для меня сегодня.