「Hello world」のように、先頭にスペースのある行があります。この行をファイルの特定の行に挿入したい。たとえば、次のファイルに「hello world」を挿入します
hello
world
結果:
hello
hello world
world
私はこのsedスクリプトを使用しています:
sed -i "${line} i ${text}" $file
問題は、スペースなしで新しい行を取得していることです:
hello
hello world
world
space
文字をエスケープして、たとえば2つのスペースを追加できます。
sed -i "${line} i \ \ ${text}" $file
または、text
変数の定義でそれを行うことができます。
text="\ \ hello world"
必要なのは\
このように複数の空白を入力するには
sed -i "${line} i \ ${text}" $file
$ a=" some string "
$ echo -e "hello\nworld"
hello
world
$ echo -e "hello\nworld" | sed "/world/ s/.*/${a}.\n&/"
hello
some string .
world
.
は、後続のホワイトスペースが保持されることを示すために、上記の置換に追加されました。つかいます sed "/world/ s/.*/${a}\n&/"
代わりに。