首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux+指定行sed

sed 是 Linux 系统中一个非常强大的流编辑器,它可以对文本文件进行查找、替换、删除等操作。使用 sed 指定行进行操作是 sed 的常见用法之一。

基本语法

代码语言:txt
复制
sed -n 'Np' filename
  • -n:表示只打印匹配的行。
  • N:表示行号。
  • p:表示打印。
  • filename:表示要操作的文件名。

例如,如果你想查看文件 example.txt 的第 5 行,可以使用以下命令:

代码语言:txt
复制
sed -n '5p' example.txt

替换指定行的内容

如果你想替换文件中指定行的内容,可以使用以下语法:

代码语言:txt
复制
sed 'Ns/old_text/new_text/' filename
  • N:表示行号。
  • s/old_text/new_text/:表示将 old_text 替换为 new_text

例如,如果你想将文件 example.txt 的第 5 行中的 "hello" 替换为 "world",可以使用以下命令:

代码语言:txt
复制
sed '5s/hello/world/' example.txt

注意,这个命令只会输出替换后的结果,而不会修改原文件。如果你想直接修改原文件,可以添加 -i 选项:

代码语言:txt
复制
sed -i '5s/hello/world/' example.txt

在指定行前后插入内容

sed 还可以在指定行之前或之后插入内容。语法如下:

代码语言:txt
复制
sed 'Ni\
inserted_text' filename

代码语言:txt
复制
sed 'Na\
inserted_text' filename
  • N:表示行号。
  • i\:表示在指定行之前插入内容。
  • a\:表示在指定行之后插入内容。
  • inserted_text:表示要插入的文本内容。

例如,在 example.txt 的第 5 行之前插入 "Hello, world!",可以使用以下命令:

代码语言:txt
复制
sed '5i\
Hello, world!' example.txt

应用场景

  • 日志处理:在日志文件中查找、替换或删除特定行的内容。
  • 配置文件管理:修改配置文件中的特定设置。
  • 文本处理:对文本文件进行批量处理,如添加、删除或修改特定行的内容。

注意事项

  • 使用 sed 修改文件时,建议先备份原文件,以防意外情况导致数据丢失。
  • sed 命令中的正则表达式和替换模式需要正确编写,以确保操作的准确性。
  • 在处理大文件时,sed 的性能可能会受到影响,因此需要谨慎使用。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【转】指定文件、指定行、指定代码块不使用 ESLint 语法检查

    指定文件、指定行、指定代码块不使用 ESLint 语法检查 在使用了 eslint 进行代码检查后,可以大幅提高我们的代码规范。但是,在某些情况下,我们必须去写一些违反规则的代码。...alert('foo'); 在文件中临时禁止规则出现警告 将需要忽略的代码块用注释包裹起来 /* eslint-disable */ alert('foo'); /* eslint-enable */ 对指定规则的启用或者禁用警告...no-alert, no-console */ alert('foo'); console.log('bar'); /* eslint-enable no-alert, no-console */ 对指定行禁用规则警告...alert('foo'); // eslint-disable-line // eslint-disable-next-line alert('foo'); 在指定行上禁用指定的某个规则alert(...foo'); // eslint-disable-line no-alert // eslint-disable-next-line no-alert alert('foo'); 在某个特定的行上禁用多个规则

    1.7K30

    ExcelVBA删除指定列含有指定字符的所在的行

    ExcelVBA删除指定列含有指定字符的所在的行 =====前面学习相关内容==== 1.ExcelVBA删除包含指定字符所在的行 2.ExceVBA删除指定字符所在的行_优化版 =====end...再删除, 2.用SpecialCells(xlCellTypeConstants, 16)快速定位 以上两种方法都可以不用理会“关键字符”在那一列的情况下执行, 【问题】 有人提出,程序运行时能否输入指定字符...,输入指定列,再进行删除。...可以的,(其实以上两种方法的适应广泛度还比较高),既然有人提出,就写一个吧 【思路】 666,参考以前两篇吧 【代码】 Sub yhd_ExcelVBA删除指定列含有指定字符的所在的行()...:=2) '删除的行的关键字 On Error GoTo 0 If Val(titleRow) = 0 Or DeleteStr = "" Then MsgBox "输入数据不正确

    1K20

    VBA:基于指定列删除重复行

    之前通过拷贝行的方式保留最后一行的数据(参见文末的延伸阅读1),但运行效率较低。目前通过借助数组和字典达到删除重复行的效果。...1 基于指定列,保留最后一行的数据2 基于指定列,保留最后一行的数据,同时剔除不需要的列3 效果演示 1 基于指定列,保留最后一行的数据 想要实现的效果:在原来测试数据的基础上,基于B列,如果存在重复的数据...VBA代码如下: Sub Delete_Duplicate1() '基于指定列,删除重复行,保留最后出现的行数据。...将选取的数据拷贝到指定区域。 VBA代码如下: Sub Delete_Duplicate2() '基于指定列,保留唯一行(若重复),同时剔除不需要的列。...Range.Value2 property(https://docs.microsoft.com/en-us/office/vba/api/excel.range.value2) 延伸阅读 [1] 根据指定列删除重复行

    3.4K30

    VBA:根据指定列删除重复行

    文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要删除第一行数据,保留后一行的数据。...下面先介绍删除重复项的功能,然后再采用VBA代码实现删除重复行的功能。...1870563960463097864&format_id=10002&support_redirect=0&mmversion=false 删除重复项的功能存在两点不足,一是如果存在重复项,默认保留行号靠前的数据行;...(2)VBA代码实现 本代码要实现的功能是根据品号进行重复行的删除。若有重复行,保留后一行数据。原始数据默认已经按品号升序排列。...Sub DeleteDuplicate() '根据指定列删除重复行 Dim aWB As Worksheet, num_row As Integer Dim

    3.2K40

    sed命令在文本每行,行尾或行首添加字符

    用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed "s/^/HEAD&/g" test.file 在每行的行尾添加字符...,比如“TAIL”,命令如下: sed "s/$/&TAIL/g" test.file 运行结果如下图: 几点说明: "^"代表行首,"$"代表行尾 's/$/&TAIL/g'中的字符g代表每行出现的字符全部替换...outfile_name";如果想在原文件上更改,添加选项"-i",如(这里的-i,可以理解为其他命令执行后的结果重定向到原文件,所以-n p等参数会影响-i的效果 也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符..."HEAD"、“TAIL”,命令: sed "/.

    3.8K20

    ExceVBA删除指定字符所在的行_优化版

    ExceVBA删除指定字符所在的行_优化版 =====start==== 1.ExcelVBA删除包含指定字符所在的行 2.在Excel中通过VBA对Word文档进行查找替换 3.ExcelVBA...文件操作-获取文件夹(含子文件夹)所有文件列表(优化版) =====end==== 【问题】 在实际工作中,要删除含有某字符的所在的行,如果数据不多,手工可以完成,如果数据量多,用前面的的文章:ExcelVBA...删除包含指定字符所在的行用Find、FindNext,再删除,新的问题:如果sheet多,每个表是上w的数据,跑起来也很卡。...再delete,速度快了,效率高了 【代码】 Sub yhd_ExceVBA删除指定字符所在的行_优化版() Dim dic As Object, dicRng As Range Dim...Set Rngs = .UsedRange.SpecialCells(xlCellTypeConstants, 16) ' Rngs.EntireRow.Delete '当数据有两个在同一行时以上代码出错

    45130
    领券