diff
ファイルの特定の行に挿入したい先行スペース(ファイルの結果から抽出)を持つ変数があります。可変的な:
add=" public function add($hardware_id = null)"
ただし、次のように行を挿入すると、先行sed
スペースは印刷されません。
$ sed "50i$add" file
...
public function add($hardware_id = null)
...
先行スペースを維持する方法は?
ベストアンサー1
変数を挿入するときに先行スペースを維持するには、単にエスケープしてください。一度\
スペースの後にバックスラッシュが続きます。入れるコマンドはi
次のとおりです。
$ sed '50i\'"$add" file
public function add($hardware_id = null)
変数に限定されず、テキストを文字通り挿入すると同じ効果が得られます。
これは、テキストを挿入する前にエスケープされたリテラル改行が必要なPOSIX指定の動作ではありません。