私はこれをOSXのファイルに1行追加するためにsedを使用するスタートアップガイドとして使用しようとしています。 https://stackoverflow.com/questions/25631989/sed-insert-line-command-osx
sed -i '.json' '2i\
this is a test place
' dummy.txt
上記は有効です。しかし、拡張する必要があるので、簡単なものから始めて二重引用符に置き換えてください。
sed -i '.json' "2i\
this is a test place
" dummy.txt
私はなぜそのような言葉を聞きますかcommand i expects \ followed by text
?または、Macで二重引用符を使用して特定の行にテキストを追加する方法は?
ベストアンサー1
$ sed "2i\\
These are words on\\
multiple lines\\
" input
1
These are words on
multiple lines
2
3
4
5
6
7
8
9
10
シェルの代わりにsed
エスケープするリテラル改行を解析してエスケープするようにバックスラッシュをエスケープする必要があります。sed
$ sed '2i\
thing' input
二重引用符を使用すると、すべての内容が文字通り渡されるため、sed
次を参照してください。<2> <i> <literal linefeed>
$ sed "2i\
thing" input
弱い引用符を使用すると、文字列を解析するときにシェルが最初に権限を取得します。したがって、sed
見てわかるように<2> <i> <linefeed>
、これは構文エラーです。