📅  最后修改于: 2023-12-03 14:53:55.188000             🧑  作者: Mango
在编写 shell 脚本时,有时需要往文件的开头添加行。这个过程可以使用 sed 命令完成,以下是一个 shell 脚本示例,展示如何使用 sed 在文件的开头添加行。
#!/bin/bash
file_name="my_file.txt"
line_to_add="New line to add"
sed -i "1i $line_to_add" "$file_name"
这个脚本使用变量设置文件名和要添加的新行内容,然后使用 sed 命令在文件的第一行前插入新行。参数 -i
表示在原始文件上进行修改,而不是输出到标准输出流。
需要注意的是,如果添加的新行与原来的第一行相同,将会创建一个新行,因为 sed 并不知道新行和第一行是否相同。
如果要添加多行,可以将每行用换行符分隔放在变量 line_to_add
中,同时使用 sed 命令执行多次,每次在文件的第一行前插入一行。
#!/bin/bash
file_name="my_file.txt"
line_to_add="New line to add\nAnother line\nThird line"
echo -e "$line_to_add" | sed 's/^/\n/' | sed '$d' | tac | sed "1i\\" | tac | sed -i -e "$"
sed -i -e '1s/^/New line to add\nAnother line\nThird line\n/g' "$file_name"
这个脚本使用 echo
命令将待添加的多行内容放在一个字符串中,使用 sed
命令将每行前加上一个换行符,然后去掉最后一个换行符。使用 tac
命令将行顺序反转,使最后一行变为第一行,再次使用 sed
命令在文件第一行前插入新行。最后完成添加操作后,需要删除最后一行,代码如下:
sed -i '$d' "$file_name"
以上是在 shell 脚本中添加行的两种方法,开发者可以根据自己的需求选择使用哪种方法。