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

如何在shell脚本中从第n行开始向文件追加字符串?

在shell脚本中,可以使用sed命令来从第n行开始向文件追加字符串。sed命令是一种流编辑器,可以对文本进行各种操作,包括插入、删除、替换等。

要在第n行开始向文件追加字符串,可以使用以下命令:

代码语言:txt
复制
sed -i 'n,$s/$/要追加的字符串/' 文件名

其中,n表示开始追加的行数,$表示文件的最后一行。上述命令会将要追加的字符串添加到第n行及其后的所有行的末尾。

举个例子,如果要在文件test.txt的第3行开始追加字符串"Hello World",可以使用以下命令:

代码语言:txt
复制
sed -i '3,$s/$/Hello World/' test.txt

这样,test.txt文件中从第3行开始的所有行都会在末尾添加字符串"Hello World"。

推荐的腾讯云相关产品:腾讯云云服务器(CVM) 腾讯云云服务器(CVM)是一种弹性计算服务,提供安全可靠、弹性扩展的云端计算能力。您可以根据业务需求选择不同配置的云服务器实例,并通过腾讯云控制台或API进行管理和操作。

产品介绍链接地址:腾讯云云服务器(CVM)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在shell程序里如何从文件中获取第n行

我一直在使用 head -n | tail -1,它可以做到这一点,但我一直想知道是否有一个Bash工具,专门从文件中提取一行(或一段行)。 所谓“规范”,我指的是一个主要功能就是这样做的程序。...答: 有一个可供测试的文件,内容如下: 使用 sed 命令,要打印第 20 行,可写为 sed -n '20'p file.txt sed -n '20p' file.txt 测试截图如下: 要打印第...8 到第 12 行,则可用命令 sed -n '8,12'p file.txt 如果要打印第8、9行和第12行,可用命令 sed -n '8p;9p;12p' file.txt 对于行数特大的文件...,为了提高处理速度,可采用类似如下命令 sed '5000000q;d' file.txt tail -n+5000000 file.txt | head -1 需要关注处理性能的伙伴可以在上述命令前加上...time 再对大文件进行测试对比。

45420

LinuxShell命令sed

使用两个单引号时,script 中使用 / 分隔每个字段,字段均为纯字符串,不能使用 Shell 下的变量;使用两个双引号时,script 中使用 | 分隔每个字段,字段中可以使用 Shell 下的变量...& :代表替换命令中匹配到的模式。 $ :代表数据流中的最后一行(也可直接用数字指定行,用 x,y 指定第 x 到第 y 行)。...r\ file :从 file 文件中读取内容并追加到模式空间匹配到的行后。...n :读取下一行到模式空间。 N :追加下一行到模式空间。 p :打印模式空间中的数据。 P :打印模式空间中的第一行(包括换行符)。...举例 打印 XXX 文件中第 5 行及其后的所有行: sed -n '5,$p' XXX 将 XXX 文件数据中的第 2 行删除后写入 YYY 文件: sed -n '2d; w YYY' XXX 将

1.1K30
  • Shell 编程日记

    Shell 脚本执行顺序依旧遵循“从上往下、从左往右”的顺序; Shell 脚本就是把一些命和运算符写进脚本文件,然后完成批量重复性工作而已; Shell 脚本支持流程控制,如 for、while、if...测试语句 在Shell 脚本中,表达式要 [] 括起来,且表达式两边均要有空格 数值比较 比较表达式 描述 n1 -eq n2 n1 = n2 n1 -ge n2 n1 >= n2 n1 -gt n2...:匹配第二行内容,并替换 sed '2,3s/str_old/str_new' file // 从第二行开始匹配,到第三行结束,并替换 sed '2,$s/str_old/str_new' file...// 从第二行开始全文匹配,并替换 // 删除行操作 sed '5d' file // 删除文件 file 第 5 行内容 sed '2,7d' file // 删除文件 file 第 2~7 行内容...sed '7,$d' file // 删除文件 file 第 7 行以后所有的行 // 插入操作,如果使用变量,请使用双引号 sed -i "Line i str" file // 在 Line行前插入

    20520

    linux中sed命令总结

    b lable # 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r file # 从file中读行。...t label # if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...T label # 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。 w file # 写并追加模板块到file末尾。...y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头的行。...: sed -n '/test/,/check/p' file 打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file 对于模板test和west

    3.2K20

    vim 个性化设置

    前言 最近在开发的一个脚本工具集中需要实现对各单个工具脚本的版本管控,作为懒癌晚期患者,对于繁琐的事情一向是很反感的。于是趁着这个机会学习和应用一下vim的自定义函数以及一些常规操作。...Vimscript,一门用于定制Vim的脚本语言。它其实就是 Vim命令。如,在Vim中,保存一个文件使用命令:write(或者缩写 :w)并回车确认。...以下脚本实现了F1插入shell文件头,F2插入python文件头,F5更新文件头中日期,F6更新工具版本(没有对应版本行时插入版本行) 本文脚本已上传github: https://github.com...重复上次命令 " : 依次沿着你的跳转记录向回跳 (从最近的一次开始) " : 依次沿着你的跳转记录向前跳 " ju(...行到第24行之间的内容. " :12,y 表示拷贝第12行到光标所在行之间的内容. " :,24y 表示拷贝光标所在行到第24行之间的内容.

    1.5K20

    shell学习教程(超详细完整)

    n为数字,$0表示当前 Shell 脚本程序的名称,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第九个参数,十以上的参数需要用大括号包含...,awk中,^则是匹配字符串的开始 ^tux匹配以tux开头的行 $ 匹配行尾,awk中,$则是匹配字符串的结尾 tux$匹配以tux结尾的行 ....“n-”表示从第n个字符到行尾;“n-m”从第n个字符到第m个字符;“一m”表示从第1个字符到第m个字符。...一旦BEGIN后的动作执行一次,当awk开始从文件中读入数据,BEGIN的条件就不再成立,所以BEGIN定义的动作只能被执行一次。...从第n字段开始,m字段结束(默认到行尾) 案例: sort命令默认是用每行开头第一个字符来进行排序的,比如: [root@localhost~]$ sort /etc/passwd #排序用户信息文件

    6.4K21

    Sed..

    引用 选定行的范围:,(逗号) 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 追加(行下):a\命令 插入(行上):i\命令 下一个:n命令 变形:y命令 退出:q命令 保持和获取:h命令和...b lable # 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r file # 从file中读行。...t label # if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...T label # 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。 w file # 写并追加模板块到file末尾。...: sed -n '/test/,/check/p' file 打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file 对于模板test和west

    1.6K20

    04-shell

    当命令不在命令行中执行,而是从一个文件中执行时,该文件就是shell脚本。 Shell是一种解释型编程语言,不需要编译,执行时也是按行执行。...第二行的echo命令则负责向屏幕上输出一句话。 运行这个脚本文件 sh test.sh 或者是 ....第一段(第1位)表示是目录还是文件,-表示是文件,d表示是目录; 第二段(第2-4位,共3个字符串)表示文件所属用户对它的权限; 第三段(第5-7位,共3个字符串)表示文件所属用户组用户对它的权限; 第四段...$n 获取当前执行的shell脚本的第n个参数值,n=1…9,当n为0时表示脚本的文件名,如果n大于9用大括号括起来{10},参数以空格隔开。...从位置offset之后开始提取子串到结尾 | | **${parameter:offset:length}** | 在变量${parameter}中,从位置offset之后开始提取长度为length

    7610

    【数据处理】sed原理及使用举例(快速理解核心)

    在做数据开发中,经常需要通过shell脚本/命令来针对文本进行预处理,sed是一个很强大的流式处理命令,笔者几乎每天都会用到,在这统一梳理总结了下! 其实 sed 很简单,比vim简单很多了! 1....$ sed -n '/test/,/check/p' example #打印从第五行开始到第一个包含以test开始的行之间的所有行。...i\: 在当前行上面插入文本 c: 用新的文本改变本行的文本 q: 退出Sed r: 从file中读行 w: 表示把行写入一个文件 (W: 追加) =: 打印当前行号码 #: 把注释扩展到下一个换行符以前...n,N 模式空间 n: 下一行 ,模式空间内容被覆盖 N: 将当前行和下一行(中间\n保留),一起追加到模式空间 N: 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。...;P;D' 波浪线用法:a~b:a起始点,b间隔 每隔两行输出一行 seq 10 | sed -n '1~3p' 1~3: 1-从什么时候开始 ,3表示间隔3行 seq 10 | sed -n '0~3p

    3.2K546

    Linux基础——正则表达式

    的行 nl /etc/passwd | sed -n '5,7p' 仅列出/etc/passwd 文件中的第 5~7 行内容注:sed 的-i 选项可以直接修改文件中的内容 6、扩展: 调用sed有三种方式...命令行方式或脚本文件方式,如果没有指定输入文件, sed从标准输入中接受输入,一般是键盘或重定向结果。...创建 sed 脚本文件append.sed,通过 sed 脚本向 test.txt 中新增内容,脚本内容如下: ?...② awk 从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取) ③ awk 将读入的记录分割成字段,将第 1 个字段放入变量$1 中,第 2 个字段放入$2,以此类推。...,填充域,$0则表示所有域,$1表示第一个域,$n 表示第n个域,随后开始执行模式所对应的动作。

    4.3K30

    Sed三剑客入门与进阶

    #[源字符串]#[替换的字符]#[Ns|N]' file #Ms : 对第M行操作 无g标志对匹配的第1列处理;有g则对着一行操作; #Ng : 从第N处/列后面全部开始替换 #Ms Ng : 对第M...行从第N出开始匹配替换 #N :从N处进行匹配替换一次 1N<512 [root@master tmp]# sed '2s#1#0#2' test.txt 1 1 1 1 1 1 0 1 1 1 1...t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。 w file 写并追加模板块到file末尾。.../p' file #打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file #对于模板test和west之间的行,每行的末尾用字符串aaa bbb

    3.1K10

    Shell 编程:探索 Shell 的基本概念与用法

    是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo 命令用于向窗口输出文本。Shell 脚本运行1、作为可执行程序chmod +x ....length=${#text}echo "字符串长度为:$length"3、字符串截取使用 ${text:7:5} 将会从第7个字符开始(从0开始计数),截取5个字符,得到的子字符串是 "World"。...fruits=("apple" "banana" "cherry")2、访问数组元素通过索引来访问数组元素,索引从0开始计数。...输出到名为 output.txt 的文件中,如果文件存在则覆盖内容。echo "Hello, File!"...> output.txt6、追加到文件这将把 "More content" 追加到 output.txt 文件末尾。echo "More content" >> output.txt

    28321

    Shell编程快速入门指南

    echo ${str:2:3} 从字符串的第二个字符开始提取3个字符,输出ruj 查找 str="huruji" echo `expr index "$str" u` 此时输出2,因为此时第一个字符位置从...,可以向脚本传递参数,在Shell中获取这些参数的格式为$n,即$1,$2......., echo "第一个参数是:$1" echo "第一个参数是:$2" echo "第一个参数是:$3" 运行 chmod..." else echo "不是普通文件" fi echo echo在显示输出的时候可以省略双引号,使用read命令可以从标准输入中读取一行并赋值给变量 read name echo your name...n 的文件以追加的方式重定向到文件file n >& m:将输出文件 m 和 n 合并 n 文件 m 和 n 合并 开始标记 tag 和结束标记 tag 之间的内容作为输入.../user" Shell文件包含 Shell脚本可以包含外部脚本,可以很方便的封装一些公用的代码作为一个独立的文件,包含的语法格式如下: . filename # 或 source filename 如

    73930

    Shell编程学习笔记

    +字符串:从历史命令最近一条开始匹配,以该字符串开头的命令 别名(alias) 列出所有的别名设置:alias 设置别名:alias a=’b’ 取消别名设置:unalias a 重定向 重定向符号...或者kill pid 管道 管道符号:| 分割命令:cut //对文件内容按分号分割,并且去除第2到4段的内容 cat filename|cut -d ':' -f 2-4 //对文件内容进行分割,并且取出第...关键字的行,并且输出行号,颜色标识 cat filename|grep -n --color=auto 'home' //搜索多个字符串匹配 grep -E "aaa|bbb|ccc" 排序命令:sort...脚本编程 脚本第一行:#!...:read -p “请输入一个数字:” n 内置变量(保存读取的输入数据):$REPLAY 获取变量参数 获取当前脚本的文件名:$0 获取参数:$n(n表示第几个参数) 获取参数个数:$# 获取所有参数

    52920

    【linux命令讲解大全】081.sed:功能强大的流式文本编辑器

    P # (大写) 打印模板块的第一行。 q # 退出Sed。 b # 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r # 从file中读行。...t # if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...T # 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。 w # 写并追加模板块到file末尾。...y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头的行。...:,(逗号) 所有在模板test和check所确定的范围内的行都被打印: sed -n '/test/,/check/p' file 打印从第5行开始到第一个包含以test开始的行之间的所有行: sed

    25710

    linux运维中的命令梳理(三)

    表示从第2行到第5行 /pattern/ 查询包含模式的行,如/disk/或/[a-z]/ /pattern/pattern/ 查询包含两个模式的行,如/disk/disks/.../g' temp.txt 从shell向sed传值: echo $NAME | sed "s/go/$REP/g" 注意需要使用双引号 快速一行命令: 's//....2.shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。 相当于shell脚本首行的:#!...,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示; g 跳到第一行; G 跳到最后一行; p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示; /pattern...含义与选项 2.1、含义 存在两个已排序文件,假如文件1中的某条记录的某个字段值(默认是第一个字段,从1开始计数)与文件2中的某条记录的某个字段值(默认是第一个字段,从1开始计数)一致,那么在最终打印结果中

    8.1K81

    【Linux篇】--sed的用法

    b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r file 从file中读行。...t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。 w file 写并追加模板块到file末尾。...y 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 4、sed元字符集 ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。...三、案例 1、替换文本中的字符串: sed 's/book/books/' file 2、全面替换 sed 's/book/books/g' file 当需要从第N处匹配开始替换时,可以使用 /Ng:

    1.6K20

    Linux中查看日志文件的正确姿势,求你别tail走天下了!

    为了生成测试数据,笔者抓心挠肝,东拼西凑,写了一个生成测试文件的shell脚本,方便下文的命令演示,复制到linux命令行执行即可。...范例2(一共10000行,没有空行):head -n -9989 test.txt ? tail 从文件尾部截取数据。...选项与参数 -n : 查看后n行数据,注意当n后面值带“+”号表示从第x行开始, 如 tail -n +1000 test.txt -f : 展示文件后面 范例1:查看尾部5行数据【tail -n...>> : 文件追加重定向命令,可以往文件末尾追加数据,正如上文 echo "第$i行" >> test.txt。...范例:查看文件行数 wc -l 案例实战 案例1:打印日志文件中第11到20行。 思路:首先获取前20行,然后在获取20行的后10行即可,需要使用管道命令。

    3.6K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券