Используйте sed со специальным символом

Я пытаюсь использовать sed со специальным символом:

sed -i -e "1i$jtempo" $file

$ file - это мой файл. $jtempo - это моя переменная со специальным символом вроде: "или [или (

Но когда я запускаю этот скрипт, у меня появляется эта ошибка:

sed: -e expression #1, char 17: unknown command: `"'

Мой файл:

"desc_test":[
"id",
"name",
],

В моем сценарии bash:

jtempo=`cat myfile`

Идея? Спасибо вам!

1 ответ

$ cat f1
"desc_test":[
"id",
"name",
],
$ cat ip.txt
1
2
3

Я бы предложил избежать i командование и использование r команда, которая будет устойчивой независимо от содержимого файла

$ # to insert before first line
$ cat f1 ip.txt
"desc_test":[
"id",
"name",
],
1
2
3

$ # to insert any other line number, use line_num-1
$ # for example, to insert before 2nd line, use 1r
$ # r command will read entire contents from a file
$ sed '1r f1' ip.txt
1
"desc_test":[
"id",
"name",
],
2
3
Другие вопросы по тегам