首页
学习
活动
专区
圈层
工具
发布

使用awk和sed获取文件奇偶数行的方法总结

i)' test.file 打印偶数行 其他相关正则取值说明 1) 打印行号和内容 [root@localhost ~]# awk '{print NR":"$0}' test.file 1...原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的 7) 使用简单样式来输出 下面表示"行号占用5位,不足补空格" [root@localhost ~]# awk '{...#awk 'END { print NR }' test.file 10) 计算每一行的和 s用作每行和的累加,从1到NF(每行总的字段数),依次累加 # awk '{ s = 0; for...(i = 1; i <= NF; i++) s = s+$i; print s }' test.file 11) 计算文件中所有字段的和 s用作总和的累加,每行都处理完成了,再输出s;注意和10...$i; print }' test.file 13) 计算文件中总的字段和(例如计算单词数) # awk '{ total = total + NF }; END { print total }'

1.9K40

Linux三剑客之grep,awk,sed命令必知必会

Linux中的Grep,Awk和Sed命令之间有什么区别? Grep命令用于查找文件中的特定模式,并输出包含搜索模式的所有结果。...当使用' awk '时,我们将花括号括起来。 模式和动作都形成规则,整个awk程序都用单引号引起来。 如何在Linux中使用AWK命令 默认情况下,Awk命令用于打印文件的内容。...让我们打印linuxmi.txt文件中行的第一部分和第二部分。 linuxmi@linuxmi:~/www.linuxmi.com awk '{print 1, 注意$0输出整行。...将测试文件中的“linuxmi”一词替换为“xxvi”并输出结果: linuxmi@linuxmi:~/www.linuxmi.com$ sed 's/linuxmi/xxvi/' linuxmi.txt...例如,最多替换第四行: linuxmi@linuxmi:~/www.linuxmi.com$ sed 's/linuxmi/xxvi/4' linuxmi.txt 要从某个特定位置替换为文件的其余部分

10.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用 shell 脚本拼接 srt 字幕文件 (srtcat)

    每段字幕之间以空行分隔,分为三行内容,分别是序号、播放时间、文字内容。对于文稿中一些比较长的行,后台会自动拆分为多个字幕段落。 srt 文件拼接 下面将拆分后的音频和字幕导入 B 站云剪辑中。...一开始用了 cat,生成的文件确实包含了所有内容,但是导入后发现只有最后一部分字幕生效了,末尾还保留了一部分前面的字幕,全乱套了: 原来,不调整字幕中的序号和播放时间,会导致前面的被后面同序号的字幕所覆盖...拼接结果将打印到 stdout,可以重定向到新文件。错误和警告将打印到 stderr 防止污染 stdout 内容。...那如何将分割的字符串赋值给 shell 变量呢?...横评 将拆分和去零结合起来,有以下几种搭配: $((var:0:2)) + sed ((var:0:2)) + ((1 awk+eval IFS + sed IFS + ((1var-100)) 由于

    3.3K10

    问与答61: 如何将一个文本文件中满足指定条件的内容筛选到另一个文本文件中?

    图1 现在,我要将以60至69开头的行放置到另一个名为“OutputFile.csv”的文件中。...Close #2 Close #1 End Sub 代码假设“InputFile.csv”和“OutputFile.csv”文件都放置在与代码工作簿相同的文件夹中。...4.Line Input语句从文件号#1的文件中逐行读取其内容并将其赋值给变量ReadLine。 5.Split函数将字符串使用指定的空格分隔符拆分成下标以0为起始值的一维数组。...6.Print语句将ReadLine变量中的字符串写入文件号#2的文件。 7.Close语句关闭指定的文件。 代码的图片版如下: ?...运行代码后,将在工作簿所在的文件夹中生成一个如下图2所示的名为“OutputFile.csv”的文件。 ? 图2

    5.9K10

    【linux工具】多行文本转一行处理技巧

    以下是 tr 的常见用法和示例: 字符转换: 使用 tr 可以将一个字符集中的字符转换为另一个字符集中的对应字符: echo "hello" | tr 'a-z' 'A-Z' 这将输出 “HELLO...对于多字符模式或更复杂的替换,你可能需要使用 sed、awk 等工具。 当提供的两个字符集长度不一致时,tr 会将第一个字符集的最后一个字符扩展,使其与第二个字符集的长度匹配。...5 sed命令组合 cat tmp.txt|xargs|sed 's/ /|/g' 效果: 图片 命令说明: xargs: 正常情况下,xargs 命令读取标准输入(stdin)并将读到的内容作为参数传递给另一个命令...组合多个命令: cat filelist.txt | xargs -I {} cat {} 这会读取 filelist.txt 中列出的文件名,并使用 xargs 和 cat 逐个显示这些文件的内容...总的来说,xargs 是一个非常有用的工具,特别是当你需要处理大量的参数或在一个命令的输出基础上执行另一个命令时。 这个命令组合实际上并不是很有效,因为 xargs 和 sed 两者的组合有些冗余。

    1.4K20

    sed的用法详解

    编辑指令’ 格式2:sed 选项 ‘编辑指令’ 文件 例:sed -n ‘/^id/p’ /etc/inittab 列出以id开头的行 常见的命令选项 -n:屏蔽默认输出(全部文本) -i:直接修改文件内容.../old/new/将每行的第一个old替换为new s/old/new/3将每行的第三个old替换为new s/old/new/g 将所有的old替换为new 替换操作的分割符/可改为其他字符,如# $...将每行的第3个xml替换为XML sed 's/xml/XML/g' a.txt 将所有的xml替换为XML sed ‘s/xml//g’ a.txt 将所有的xml都删除 sed 's/doc.../' a.txt 将文件中每行的第一个和第二个字符互换 sed -r 's/^(.)(.)(.*)/\2\1\3/' a.txt 将文件中每行的第一个和第二个单词互换 sed -r 's/([a-Z]+...a[$0]++' filename a为数组名 $0为处理对象 表示要去除的是整行重复的内容,如果要去除的是字段重复的行,可以将$0改为$1 $2 提取测试文件:awk -F: '' /etc/passwd

    4.7K31

    sed、awk——运维必须掌握的两个工具

    今天主要跟大家介绍2个非常霸道的工具,sed和awk,本篇文章将介绍这两个工具在日常运维中的常用用法,工作中这两个工具要掌握好了在结合一些管道命令、正则表达式,日常处理事务简直666啦!...接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。利用sed命令可以将数据行进行替换、删除、新增、选取等特定工作。 ?...通常跟参数-n 一起运行 s:替换,用一个字符串替换另一个,注意与c参数的区别 3.举例 我们用/ etc/passwd文件来演示,先来看看sed不加参数跟加上-n参数是怎样的 ? ?...将passwd文件中包含/sbin/nologin替换为/bin/bash并打印输出 ? 将passwd文件中第2行的数据替换为test,注意到与s参数的区别了吧 ?...想想日常工作中如何要获取文件中第几行第几列的数据应该如何操作,如打印passwd文件中第一行与最后一行第一列的数据,sed跟awk结合使用啦。 ?

    1.1K60

    Shell笔记5:sed用法详解

    编辑指令’ 格式2:sed 选项 ‘编辑指令’ 文件 例:sed -n ‘/^id/p’ /etc/inittab 列出以id开头的行 常见的命令选项 -n:屏蔽默认输出(全部文本) -i:直接修改文件内容.../old/new/将每行的第一个old替换为new s/old/new/3将每行的第三个old替换为new s/old/new/g 将所有的old替换为new 替换操作的分割符/可改为其他字符,如# $...#an开头的行的注释去掉 删除每行第二个和最后一个字符 sed -i 's/.//2;s/.$//' a.txt 删除每行第二个和最后一个单词 sed -r 's/[a-Z]+//2;s/[a-Z]+(...[^a-Z]*)$/\1/' a.txt 将文件中每行的第一个和第二个字符互换 sed -r 's/^(.)(.)(.*)/\2\1\3/' a.txt 将文件中每行的第一个和第二个单词互换 sed -...a[$0]++' filename a为数组名 $0为处理对象 表示要去除的是整行重复的内容,如果要去除的是字段重复的行,可以将$0改为$1 $2 提取测试文件:awk -F: '{print $7}'

    1.7K10

    《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用

    第九章 数据查找和筛选工具 学习目的 ​ 让学生了解流编辑器sed和报表生成器awk的简单使用。 学习要求 了解:流编辑器sed和报表生成器awk的简单使用。...▪ 工作流程 sed 工作时,首先读取被编辑文件中的第一行文本,将其放入一个模式空间的临时缓冲区中。 再读取编辑命令,根据命令中指定的模式和行号来查找和编辑文本。.../^uestc/p’ file3 ​ 打印file3中第9行到以uestc开头的行 sed -n ‘/[Cc]hina/p’ file4 ​ 打印file4中包含China或china的行 删除文件内容...(2) awk的基本格式 awk ‘pattern {action}’ filename awk扫描filename中的每一行, 对符合模式pattern的行执行操作action (3) 数据文件中记录和域的标识...重点 流编辑器sed和报表生成器awk的简单使用。 难点 ​ 流编辑器sed和报表生成器awk的使用。 习题 1.屏幕编辑器和流编辑器的区别。

    33110

    linux中最为常用的三大文本(grep,sed,awk)处理工具

    处理时,把当前处理的行存储在临时缓冲区中,成为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。...test [每个字符进行映射替换] 转换命令会对 inchars 和 outchars 值进行一对一的映射,即 inchars 中的第一个字符会被转换为 outchars 中的第一个字符, 第二个字符会被转换成...反选,打印没有匹配到 hani 的行 sed -n ‘s/old/new/gp’ test 只打印匹配替换的行 6.7 sed w 将所选的行写入文件 w 命令用来将文本中指定行的内容写入文件中 格式如下...)、一个或多个文件,或其它命令的输出; 它支持用户自定义函数和动态正则表达式等先进功能,是*nix下的一个强大编程工具; 它可以在命令行中使用,但更多是作为脚本来使用; awk有很多内建的功能,比如数组...、函数等,这是它和C语言的相同之处; 灵活性是awk一大的优势。

    6.5K10

    sed uniq sort 实例

    sed 先来一段小日志,这只是一部分日志。 #!...d’ test.log 其实一开始便可以使用这个命令来删除其他不是日志的行 2、只留下ip,host,uri三列,其余均不要 先去掉引号,删除引号我们可以理解为将文件中的所有的引号替换为空 单引号均替换成空了...: 如何觉着之间有空格的话,可以删除空格: sed ‘s/[[:space:]]//g’ test.log 3、对日志内容做统计 统计日子的话可以用到grep sort uniq awk等命令 4、在指定内容下添加某一行...# sed 's/$/&TAIL/g' 1.txt aaaaaTAIL bbbbbTAIL cccccTAIL 在匹配内容的行首加字符 # sed 's/^a/HEAD&/g' 1.txt HEADaaaaa...,如果重定向源文件会出现被清空的现象,这个时候使用  -o 选项可以解决 看到原文件被清空,使用 -o试试 sort -n 以数值排序,例如有时候10比2小的情况 接下来的选项会是非常有用和常见的: -

    1.3K20

    十三、Linux Shell脚本:文本处理三剑客之 sed 与 awk

    在掌握grep和正则表达式之后,我们接着学习Linux命令行文本处理的另外两大核心工具:sed 和 awk 。grep 擅长查找,而 sed 擅长编辑,awk 则擅长格式化报告和复杂的数据处理。...会创建一个 .bak 后缀的备份文件) 二、报告生成器 awk awk 是一个强大的文本处理语言,它逐行读取输入,并将每行按分隔符切分成字段,极度擅长处理列式数据和生成报告。...打印指定字段 # 打印 /etc/passwd 文件的第一列 (用户名) awk -F: '{print $1}' /etc/passwd # 打印 /etc/passwd 文件的第一列和最后一列 awk...10s %-10s\n", $1, $2, $5}' 三、总结 本次我们深入学习了Linux文本处理三剑客中的sed 和 awk。...sed替换: 使用 sed 命令,将 server.log 中所有出现的 “User” (首字母大写) 替换为 “Client”。

    23110

    《Linux与unix Shell编程指南》 总结

    文件类型有七种,它可以从 ls -l命令所列出的结果的第一位看出: d 目录。l 符号链接(指向另一个文件)。s 套接字文件。b 块设备文件。c 字符设备文件。p 命名管道文件。...sed、awk和grep都很适合用管道,特别是在简单的一行命令中。在下面的例子中, who命令的输出通过管道传递给awk命令,以便只显示用户名和所在的终端。...查看文件内容:head,tail,sed 相信最基本的cat、more和less你已经很熟悉了,如果有特殊的要求呢: 1....tail -f 命令可用于监视另一个进程正在写入的文件的增长。 -k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。...good,然后把good替换为bad sed 's/good/bad/'只把每行的第一个good替换为bad sed 's/good/bad/2'只把每行的第二个good替换为bad sed 's

    6.2K30

    Linux基础命令和工具详解,让你轻松应对各种任务!

    sed命令是用来批量修改文本内容的,比如批量替换配置中的某个ip。sed命令在处理时,会先读取一行,把当前处理的行存储在临时缓冲区中,处理完缓冲区中的内容后,打印到屏幕上。...sed'/^sys/S/a/b/g'filename替换模式的参数有点多,但第一部分和第五部分都是可以省略的。替换后会将整个文本输出出来。前半部分用来匹配一些范围,而后半部分执行替换的动作。...g默认只匹配行中第一次出现的内容,加上g,就可以全文替换了。常用。p当使用了-n参数,p将仅输出匹配行内容。w和上面的w模式类似,但是它仅仅输出有变换的行。i这个参数比较重要,表示忽略大小写。...'|awk'{print$3$2$1}'thatdoI将字符串Idothat通过管道传递给awk命令,相当于awk处理一个文件,该文件的内容就是Idothat,默认通过空格作为分隔符(不管列之间有多少个空格都将当作一个空格处理...掌握了这些命令和工具,读者不仅能够轻松执行常见的文件搜索、显示、计数等操作,还能够利用grep、sed、awk等强大工具进行更加高级的文本处理和分析。

    64602

    史上最全的 Linux Shell 文本处理工具集锦,快收藏!

    、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用的; 对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python...; eg:将找到的文件全都copy到另一个目录: find ....sed "s/$p/$r/g"$>line con a replaced 其它示例 字符串插入字符:将文本中每行内容(PEKSHA) 转换为 PEK/SHA sed 's/^.{3}/&//g' file...):将正则匹配到的第一处内容替换为replacement_str;match(regex,string):检查正则表达式是否能够匹配字符串;length(string):返回字符串长度 echo | awk...: seq 10 | awk '{printf "->%4s ", $1}' 迭代文件中的行、单词和字符 1.

    4.5K50

    文本_bash笔记4

    grep 用于文本搜索,匹配文件内容,语法格式为:grep pattern filename,例如: # 找出所有含有for的行 grep 'for' test.sh # 对多个文件进行搜索 grep...,只能是单字符,不好用(无法应对多空格的情况,只适用于单字符分隔的内容) 例如切出ps结果中的PID和CMD列: # awk完美解决问题 ps | awk '{print $1,$4}' # cut不好用...]*\t*//g' 另一个常用功能是文件原地替换(替换并把结果写入原文件): # 把test.txt里所有的单词替换为[word] echo $'this is a new file\nnext line...通常被用于按列提取,例如: # 文件名 ps | awk '{print $1, $4}' 非常强大,可以对列和行进行操作,一般格式如下: awk 'BEGIN{ print "start" } pattern1...{ command } END{ print "end" }' file BEGIN、END和模式块都是可选的,先执行BEGIN块,然后从输入内容中读取一行,依次执行各个模式块,直到所有内容读取完毕,然后执行

    1K30

    linux实战(一)

    grep 作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。...接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。...从文件读入r命令 $ sed '/test/r file' example file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。...保持和互换h命令和x命令 $ sed -e '/test/h' -e '/check/x' example 互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换。...commands awk的命令非常多,因为它甚至可以算是一个编程语言。我们这里就不详细讲述了。后面的实例学习中会了解到一部分常用的命令。

    3.1K10

    生信入门必须掌握的 30 个 Linux 命令

    cat的一个作用是查看文件,一般是比较小的文件,行数小于一个屏幕,最多不要超过两个屏幕,否则会刷屏; cat另一个作用是合并多个文件,一般配合重定向合并为一个新文件或者将一个文件内容追加到另一个文件结尾...:筛选出不满足条件的内容; ps -fx | grep -v "S" 19. sed sed = Stream Editor....sed -e 's/gi/GI/' seq.fna #将文件中gi全部替换为大写GI; sed -i 's/gi/GI/g' seq.fna #在原文件上进行替换,并且进行全部替换; sed -...#案例10:awk编程求和 awk '{print $0,$3+$4}' input.txt #计算第3列和第4列的和。...#案例15:替换 awk '{sub(/test/, "no", $0);print}' input.txt 进行替换,类似sed的功能, #案例16:fastq转换为fasta awk '{getline

    3K40

    Linux Shell 文本处理工具集锦

    本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用的;...; eg:将找到的文件全都copy到另一个目录: find ....a patten" | sed "s/$p/$r/g" $>line con a replaced 其它示例 字符串插入字符:将文本中每行内容(PEKSHA) 转换为 PEK/SHA sed 's/^...# 输入来自文件 用样式对awk处理的行进行过滤 awk 'NR < 5' #行号小于5 awk 'NR==1,NR==4 {print}' file #行号等于1和4的打印出来 awk '/linux...string):将正则匹配到的第一处内容替换为replacement_str; match(regex,string):检查正则表达式是否能够匹配字符串; length(string):返回字符串长度

    3.7K70
    领券