sed在文件特定行首尾或行前后添加内容
- Linux
- 2024-01-14
- 1830热度
- 0评论
# 在特顶行首添加:
sed -i '3{s/^/aa/}' a.txt (在第三行行首添加aa,文件名为a.txt)
在特定行尾添加:
sed -i '{3/$/aa/}' a.txt(在第三行行尾添加aa,文件名为a.txt)
连续几行行首添加:
sed -i '1,2{s/^/bb/}' a.txt(在1-2行行首添加bb)
在连续几行行尾添加:
sed -i '1,2{s/$/bb/}' a.txt(在1-2行行尾添加bb)
在特定行,行前添加数据
sed -i 'N;2 i 111' c.txt(在第一行行前添加111)
在特定行,行后添加数据
sed -i 'N; 2 i 111' c.txt(在第二行行后添加111)
# -----------在某行(指具体行号)前或后加一行内容-----------
# 第4行末尾追加一行,内容为test
sed -i 'N;4atest' test.txt
# 第4行行首追加一行,内容为test
sed -i 'N;4itest' test.txt
# 匹配到test字段的行行首插入一行
find . -name test.txt|xargs sed -i '/test/i '
# 所有行首增加
sed -i 's/^/ABC/' test.txt
# 所有行尾添加
sed -i \'s/$/XYZ/\' test.txt
# 第5行添加文件a.txt的内容
sed -i '5 r a.txt' test.txt
# oooo行文件a.txt的内容
sed -i '/oooo/r a.txt' 5.txt
# ------删除-----------------------
# 删除指定行,例如第5行
sed -i '5 d' test.txt
# 删除首行
sed -i '1d' test.txt
# 删除末行
sed -i '$d' test.txt
# 删除空行
sed -i '/^$/d' test.txt
# 剔除空格
sed -i 's/[ ]*//g' test.txt
# 删除车符
sed -i 's/^M//g' test.txt
# 删除指定字段的下一行
sed -i '/test/{n;d}' test.txt #匹配到test字段
# 删除指定字段的上一行
sed -i -e :a -e '$!N;s/.*n(.*test)/1/;ta' -e 'P;d' test.txt #匹配到test字段
在linux系统中,我们可以使用sed命令在关键字所在的行尾部追加内容。
例如,假设你有一个名为 file.txt 的文件,并且想要在包含 "keyword" 的行尾插入 "new content"。你可以运行以下命令:
sed '/keyword/s/$/ new content/' file.txt
这个命令会查找包含 "keyword" 的行,并在这些行的尾部添加 "new content"。
这个命令的工作方式如下:
\'/\' 和 \'/\' 之间的 "keyword" 是你正在查找的模式。
s 表示替换操作。
$ 是行尾的表示。
"new content" 就是你要插入的文本。
注意:这个命令只会在屏幕上显示修改后的内容,而不会改变实际的文件。如果你想要将更改保存回文件,你可以使用 -i 选项:
sed -i '/keyword/s/$/ new content/' file.txt
以上命令会在包含 \'keyword\' 的行尾追加 \'new content\'。