Как добавить новую строку, используя sed на MacOS?
Я хотел добавить новую строку между </a> and <a><a>
</a><a><a>
</a>
<a><a>
Я сделал это
sed 's#</a><a><a>#</a>\n<a><a>#g' filename но это не сработало.
Ответ 1
Некоторые sed, особенно Mac/BSD, не интерпретируют \n как новую строку, вам нужно использовать фактическую новую строку, перед которой стоит обратная косая черта:
$ echo foo | sed 's/f/f\n/'
fnoo
$ echo foo | sed 's/f/f\
> /'
f
oo
$
Или вы можете использовать:
echo foo | sed $'s/f/f\\\n/'
Ответ 2
Работает на mac в двух интерпретациях:
echo foo | sed 's/f/f\'$'\n/'
echo foo | gsed 's/f/f\n/g'
Ответ 3
... или просто стучите по нему! работал для меня на вставке на Mac/OSX:
sed "2 i \\\n${TEXT}\n\n" -i ${FILE_PATH_NAME}
sed "2 i \\\nSomeText\n\n" -i textfile.txt