sed -i '1 i<urlset>' $filename为啥能匹配最后一行
时间: 2023-07-04 22:25:55 浏览: 273
这是因为 sed 命令在执行时是按行读取文件的。在执行 `sed -i '1 i<urlset>' $filename` 命令时,sed 会在文件的第一行前插入 `<urlset>`,如果这个文件本身只有一行,则插入的内容会位于这一行的前面。
如果要在文件的最后一行插入 `<urlset>`,可以使用如下命令:
```
sed -i '$ a<\/urlset>' $filename
```
其中 `$` 表示最后一行,a 表示追加命令,`<\/urlset>` 表示要插入的内容。
相关问题
sed -i '1 i\<urlset>' $filename
这是一条使用 sed 命令的语句,它的作用是在指定的文件中的第一行之前插入 `<urlset>` 标签。具体来说,`-i` 参数表示直接修改原文件,`1` 表示匹配第一行,`i` 表示在匹配行之前插入文本。需要注意的是,`<` 和 `>` 在 Bash 中是特殊字符,表示重定向符号,因此需要用单引号将整个 sed 命令括起来,以防止 Bash 对这些字符进行解释。
for filename in `find ./ -name "${name}_xml*"` do sed -i '1 i\\<urlset\>' $filename echo "</urlset>" >> $filename mv $filename ${filename}.xml done哪一行代码表示最后一行也插入了<urlset>
在这段代码中,最后一行也插入了 `</urlset>`,是由下面这行代码实现的:
```
echo "</urlset>" >> $filename
```
这行代码使用 `>>` 操作符将 `</urlset>` 追加到文件的末尾。因此,在 `sed` 命令将 `<urlset>` 插入到第一行之后,`echo` 命令又将 `</urlset>` 追加到了文件的最后一行。
阅读全文