我在开头有一行空格,例如“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&/"
。
可以通过像这样拆分表达式来完成:
sed -i $file -e '2i\' -e " $text"
这是一个 GNU 扩展,用于更轻松地编写脚本。