Linux批量操作多个文件内容的指令
在Linux系统中,面对同一种内容格式相同的多个文件,可以用sed指令来实现,sed指令操作的是原始文件,请在操作前先备份成尾椎名字不同的文件
语法sed [-hnV][-e<script>][-f<script文件>][文本文件]
下面开始几个常用的操作指令
指定名称替换操作
- 例如,要替换一个文件夹下面内容格式相同的多个文件,要替换变量名“variable”为“modification”,可以用指令sed -i “s/variable/modification/g” ./*.txt ,注意这里替换会把文件中所有变量为“variable” 的替换为 “modification”;
#指定内容替换
sed -i "s/variable/modification/g" ./*.txt
批量行替换操作
2. 如果说想替换某一行或者多行内容,下面是替换文本内第2行的指令,记得把‘需要新写入的内容xxx’替换成自己想要插入的内容,其次如果想在内容中加双引号需反斜杠转义,如需查看想修改的位置是在文本的第几行,可使用vi xxx文件 进入后,使用:num可查看是在文件的第几行
# 单行内容操作
sed -i '2c 需要新写入的内容xxx' ./*.txt
#多行内容操作
sed -i '2,4c 需要新写入的内容xxx' ./*.txt
新增操作
3. 在某一行新增内容,原有行会被算到下一行
sed -i '2a 需要新写入的内容xxx' ./*.txt
删除操作
4. 删除也有单行和多行操作,和批量替换类似,删除行后,原有行的下一行会成为原有行
#仅删除第二行
sed -i '2d' ./*.txt
#删除第2行到最后一行
sed -i '2,$d' ./*.txt
查看操作
5.当然也有查看操作,但是我这里还是提一下,但是不常用,大家可能都会用cat、more、tail、vim !!vim多用于修改,文件太大的话使用vim会卡死的!
#精准匹配查询所在行,及查看内容
nl 文件路径/文件名称 | sed -n '/查询内容/p'
#查看文件第2行到第五行的内容
sed -n '2,5p' ./