linux打印指定行命令 linux 打印文件中的特定内容( 二 )


ppppqqqq
bAidu567
a.此时我想把含有baidu的行以 "行号:该行完整内容"的形式输出,则只需要执行:
sed = test | sed 'N;s/\n/:/' | sed -n '/baidu/Ip'//最后p前面的是大写的I
得到结果为:
1:Baidu123
3:bAidu567
*.忽略大小写,还有一个比较笨的方法,使用[],将关键字的所有字母的大小写都包括了,就来例来说 , /[bB][aA][iI][dD][uU]/
b.输出所有的行,不使用关键字过滤行,则只需要去掉最后一部分,即:
sed = test | sed 'N;s/\n/:/'
得到结果为:
1: Baidu123
2:ppppqqqq
3bAidu567
完!
---------------------------------------------
grep解决这个问题比较好吧,假设有文件test,内容为:
Baidu123
ppppqqqq
bAidu567
如果我想得到格式如 line: line_content这种格式内容的话:
grep -ni "baidu" test
结果为:
1:Baidu123
3:bAidu567
Linux命令行操作之sedsed命令行格式:sed [options] 'command' file(s)
options常用选项:
-n或--quiet或——silent:仅显示script处理后linux打印指定行命令的结果;
-e:以选项中的指定的script来处理输入的文本文件;
-f:以选项中指定的script文件来处理输入的文本文件;
-r∶sed 的动作支援的是延伸型正规表示法的语法;
-i∶直接修改读取的档案内容linux打印指定行命令,而不是由萤幕输出;
-h或--help:显示帮助;
-V或--version:显示版本信息 。
Command常用命令:
a:新增linux打印指定行命令,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);
c:取代,c 的后面可以接字符串,这些字符串可以取代 n1.n2 之间的行;
d:删除,d 后面通常不接任何字符串;
i:插入 , i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);
p:列印 , 亦即将某个选择的资料印出 。通常 p 会与参数 sed -n 一起运作;
s:取代,可以直接进行取代的工作 , 通常与正规表达式搭配使用 。
实例说明:
新增操作:a命令
sed '/^bird/a\test' file将test追加到 以bird开头的行后面
删除操作:d命令
sed '/^$/d' file #删除空白行;
sed '2d' file #删除第二行;
sed '2.$d' file #删除第2行到最后一行;
sed '$d' file #删除最后一行;
sed '/^bird/'d file #删除所有开头是bird的行;
插入操作:i命令
sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird
替换文本中的字符串:s命令
sed 's/bird/birds/' file #将文本中的bird替换成birds;
sed -i 's/ bird / birds /g' file #将file文件中每一行的第一个bird替换为birds;
linux打印指定行命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 打印文件中的特定内容、linux打印指定行命令的信息别忘了在本站进行查找喔 。

推荐阅读