Linux 打印文件某几行

有这样的面试题:Linux 打印文件第 10-20 行。

在此之前,先造一点数据用于打印测试吧:

i=1;while [ $i -le 100 ];do echo "$i 行,测试测试,over。" >> test.txt;let i++ ;done;

这里简单写了个循环,造了100行数据,长这个样子
在这里插入图片描述
然后来解决打印10-20行的问题,这里要使用的指令是sed1

sed -n '10,20p' test.txt

输出:
在这里插入图片描述
-n 按行输出,单引号内的是执行区间10-20,p是打印指令。2

拓展

  • 替换:s命令, "/" 是界定符

默认替换第一个

case echo hello dog dog dog | sed 's/dog/cat/'
hello cat dog dog
  • 替换全部 g
case echo hello dog dog dog | sed 's/dog/cat/g'
hello cat cat cat
  • 替换某个 ng

替换第二个,mac下不能加g,其他环境可以使用2g

case echo hello dog dog dog | sed 's/dog/cat/2'//mac 2不能加g
hello dog cat dog
  • 打印命令 p
case echo code hard >> test.txt
➜  case sed -n 's/code/life/p' test.txt
life hard
  • 删除命令 d
case sed  '/^code/d'  test.txt
//删除空行
➜  case sed '/^$/d' test.txt

  1. sed ↩︎

  2. Linux Sed命令详解 ↩︎

猜你喜欢

转载自blog.csdn.net/Logicr/article/details/112845375