awk和sed实现匹配行内容和行号打印

 

  sed打印所有匹配行行号  sed -n  '/liu/=' aa

  sed打印匹配内容  sed -n  '/liu/p' aa

  sed打印匹配内容和匹配行号  sed -n  -e '/liu/='  -e '/liu/p' aa

  sed打印最后一个匹配内容的一行  sed -n  -e '/liu/='  -e '/liu/p' aa | tail -n1

 重点语法:

 sed中p 打印匹配行

        = 打印匹配行号

        -n  打印模式匹配的行

        -e 命令行进行编辑

 

以下为实现的是匹配行到文件末尾的内容打印,有不对的命令请指正一下

匹配行到文件末尾:
num=`sed -n '/匹配内容/=' file | tail -n1` #得到匹配最后一行的行号,再使用以下命令打印    sed -n $num',$p' file 
tac file | sed '/ccc/q' | tac
sed -n '/ccc/h;//!H;${g;p}' file
awk 'NR==FNR{if(/ccc/)p=FNR ;next} FNR>=p' file file
awk -vRS="" -vFS="ccc" '{print FS$NF}' urfile
awk '{s=s"\t"$0}END{gsub(".*ccc","ccc",s);gsub("\t","\n",s);print s}' aa 
sed -z 's/.*\nccc\n/ccc\n/'

sed ':1;$q;N;/ccc/,$D;b1' file
不包含匹配行ccc
sed -n ':1;N;$!b1;s#.*\nccc#ccc#p' file
包含匹配行ccc
awk -vRS='ccc'  'END{print RS,$0}' urfile

 

sed -i "s/plumber/streamsets-datacollector-basic-lib/g" */*
grep -E "abc.*def|xyz"
tail -f nohup.out |awk '/sum|/' 
tail /etc/services | awk '/warn/{a[$1]++}END{for(v in a)print a[v],v}'
tail -f ./nohup.out | awk '/warn/{print substr($4,1,2);total=total+$1;}'
tail -f ./nohup.out | awk '/warn/{a+=substr($4,1,2);b+=$a;print a}'
tail -f nohup.out | grep -v "md5"
tail -f nohup.out | grep -vE '(error|critical|warning)'
反向搜索:grep -n 'something' file | tail -n 1

文件中每一行前加时间:cat all.txt | while read line; do echo "[$(date "+%Y-%m-%d %H:%M:%S")] $line"; done

 

 


 

  

  

 

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: sed是一种流编辑器,用于对文本进模式匹配和替换的工具。它主要用于在命令中进文本处理和转换。 sed的基本工作原理是:逐读取输入文本,并将其与指定的模式进匹配。一旦匹配成功,sed会执相应的操作,如插入、删除或替换文本。sed可以根据指定的规则和参数对匹配多次操作。 sed的语法非常灵活,可以支持多种命令和选项。最基本的用法是使用s命令进搜索和替换。比如,`sed 's/old/new/' file.txt`会在文件file.txt中将所有匹配到的old替换为new。 除了搜索和替换,sed还可以执其他操作,如删除、插入和打印。例如,`sed '2d' file.txt`会删除文件file.txt的第二;`sed '3i\inserted line' file.txt`会在文件file.txt的第三之前插入一文本"inserted line"。 sed还支持正则表达式,可以使用各种元字符和修饰符进更加精确的模式匹配。例如,`sed 's/[0-9]/*/g' file.txt`会将文件file.txt中的数字全部替换为星号。 总之,sed是一款功能强大的文本处理工具,适用于各种需要对文本进编辑和转换的情况。它简洁高效的语法和灵活多样的操作命令,使得它在使用上非常方便。无论是在命令中还是在脚本中,sed都是一个非常实用的工具。 ### 回答2: sed 是一种流编辑器,它在文本处理中非常强大和灵活。它的全称是“stream editor”,可以在一或多文本中修改、删除、插入或替换文本。 sed 的基本语法是使用命令和选项来指定对文本进的操作。最简单的用法是将 sed 命令应用于文本文件并输出结果到标准输出。例如,可以使用 sed 来删除文本文件中的特定,或者替换文件中的特定字符串。 在 sed 中,可以使用不同的命令来实现各种操作。最常见的命令包括: - s:用于替换文本中的字符串。例如,可以使用 s 命令将文本中的“hello”替换为“world”。 - d:用于删除特定。例如,可以使用 d 命令删除文本文件中的第五。 - p:用于打印特定。例如,可以使用 p 命令打印文本文件中的第十。 除了单个命令之外,还可以在 sed 中组合多个命令来实现更复杂的操作。可以使用分号 (;) 将多个命令连接在一起,并使用花括号 ({}) 将多个命令组合成一个指令块。 sed 还支持各种选项来修改其默认为。例如,可以使用-i选项来直接修改文本文件,而不是将结果输出到标准输出。 总而言之,sed 是一种功能强大的文本处理工具,它可以帮助我们快速并灵活地编辑、修改和处理文本文件中的内容。无论是在命令还是在脚本中,sed 都是一种非常有用的工具。 ### 回答3: Sed,全称Stream Editor(流编辑器),是一种非交互式文本编辑器,常用于在Unix或Linux系统中进文本处理和转换。 Sed为单位进处理,可以读取文本文件的内容,对每匹配和编辑操作,然后将结果输出到标准输出或是指定的文件中。 Sed的命令语法非常简洁,一般由一个或多个编辑命令组成。编辑命令由一个地址和一个命令动作构成,如`[地址]命令/动作`。地址可以是一个行号、正则表达式或是两者的组合,用于指定编辑命令作用的。命令可以是替换、删除、插入等各种操作。 Sed的功能非常强大。它可以用于文件内容的查找和替换,可以根据指定的模式对文本进筛选和提取,可以对文本进排序、合并或拆分等操作。此外,Sed还支持脚本编程,可以编写复杂的编辑脚本对文本进批量处理。 Sed在文本处理中有着广泛的应用。比如,可以使用Sed对文本文件进批量的替换操作,可以快速提取或删除指定模式的数据,可以使用Sed对日志文件进过滤和分析等。由于Sed具有简单、高效和灵活的特点,它成为了文本处理和数据处理的重要工具之一。 总之,Sed是一款强大而灵活的流编辑器,可以用于对文本进各种操作和转换。无论是对文本文件进简单的替换还是对复杂的文本处理任务,Sed都可以提供便捷有效的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值