[转帖]使用Linux命令快速查看某一行

使用,linux,命令,快速,查看,一行 · 浏览次数 : 0

小编点评

## 总结 这篇文章分享了多种方法来实现快速查看文件的第200行的功能,涵盖了多种编程思想的应用。 **主要方法:** 1. **使用 `cat -n`:**该方法利用行号对每行进行计数,并使用 `grep`提取第200行内容。 2. **使用 `sed`:**该方法使用 `200p` 的命令直接匹配第200行,并使用 `p` 指令输出匹配内容。 3. **使用 `awk`:**该方法使用 `NR==200` 的条件匹配第200行,并使用 `awk` 打印该行。 4. **使用 `perl`:**该方法使用 `perl` 读取文件,并使用 `print` 打印第200行内容。 5. **使用 `xargs`:**该方法将所有行传递给 `bash`,并在 `bash` 中使用 `awk` 打印第200行。 **其他方法:** * 使用 `head -n 200 | tail -n1` 可以从文件开头提取第200行。 * 使用 `cut` 可以按照指定字符进行分隔,并使用 `awk` 在分隔后的结果中提取第200行。

正文

 

 

原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。

简介#

当年,我还是Linux菜鸟的时候,就在简历上写着精通Linux命令了,而当面试官问我“如何快速查看某个文件的第200行,仅这一行”时,我的心里是懵逼的。

当时面试官心里估计在窃喜,从我敷衍的回答中,他应该已经完全了解到了我的Linux水平如何[-_-]

不过,不得不说,这是一道非常好的面试题,对于一些只知道cd ls cp rm基础命令的人来说,完全回答不了,而对于真正熟悉Linux人来说,答案信手拈来,下面来看看。

1. 如果知道cat加-n可以输出行号的话:#

cat -n temp.log | grep -w '^\s*200'

是的,每行前面加个行号,然后grep过滤一下就出来了。

2. 如果稍微了解过sed命令的话:#

cat temp.log | sed -n '200p' 

sed命令能直接用行号匹配,匹配到的行用p指令输出就行了。

3. 如果稍微了解过awk命令的话:#

cat temp.log | awk 'NR==200'

这个和sed命令类似,不过NR代表行号。

4. 如果你比较幸运,学过一点perl的话:#

cat temp.log|perl -lne 'print $_ if $.==200'

和awk是类似的,不过语法不同罢了。

5. 如果了解head,tail,脑袋转得再快一点的话:#

cat temp.log | head -n 200 | tail -n1 

是的,先取前200行,再用tail取最后一行就可以了,这么简单咋当时想不到呢!

6. 如果知道cut,思路再转个弯的话:#

cat temp.log | cut -z -d $'\n' -f200 
cat temp.log | awk -F '\n' -v RS='\0' '{print $200}'

嗯,把整个文件内容当成一条记录,把换行符当成列分隔符,取第200列就好了嘛。

7. 如果你在想xargs行不行的话:#

cat temp.log | xargs -d'\n' bash -c 'echo $200' -

和上面是类似的,不过这次使用xargs把所有行变成了bash命令的参数,然后打印第200个参数即可。

注:上面没有详细解释各个命令的用法,如果想了解这些命令,可以看看我之前写的两篇文章。 
原来awk真是神器啊
Linux文本命令技巧(上)

总结#

是的,使用Linux命令,实现一个功能,可以有很多种解法,它和普通的编程思维很不一样,只要不把思考方式限定在编程实现上,渐渐地解法都会像灵感一样,从你大脑中蹦出来。

往期内容#

原来awk真是神器啊
Linux文本命令技巧(上)
Linux文本命令技巧(下)
mysql的timestamp会存在时区问题?
hex,base64,urlencode编码方案对比
字符编码解惑

作者:打码日记

出处:https://www.cnblogs.com/codelogs/p/16060367.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

与[转帖]使用Linux命令快速查看某一行相似的内容:

[转帖]使用Linux命令快速查看某一行

原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 当年,我还是Linux菜鸟的时候,就在简历上写着精通Linux命令了,而当面试官问我“如何快速查看某个文件的第200行,仅这一行”时,我的心里是懵逼的。 当时面试官心里估计在窃喜,从我敷衍的回答中,他应该已经完全

[转帖]Linux系统中的tar命令

https://www.cnblogs.com/PatrickLiu/p/9761988.html 时间一长什么东西都容易忘记,尤其是一些不常用的东西忘记的更快,所以避免忘记,就记录下来,可以方面使用的时候查询。Tar命令在linux系统中算是一个比较重要的命令,今天就针对该命令进行总结一下。 1.

【转帖】Linux中如何取消ln链接?(linuxln取消)

https://www.dbs724.com/163754.html Linux系统使用ln命令可以快速创建链接,ln链接是指把文件和目录链接起来,当改变源时可以快速地改变整个目录下的文件和目录。有时候,某些文件或者目录链接起来不是我们需要的,我们需要使用Linux取消ln链接命令。下面就来简单介绍

[转帖]Linux常用的一些命令,看你知道多少?

https://zhuanlan.zhihu.com/p/115279009 Linux中命令有很多,而Linux系统中使用命令也是它的一大特点。在Linux系统中使用命令处理问题灵活,高效,所以熟知这些命令可以提高你的工作效率,帮助你快速处理问题。 本文列出了一些在Linux系统中经常使用的命令,

[转帖]Linux ss命令详解

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器的socket连接数量变得非常大时,无论是使用nets

[转帖]Linux命令之systemctl命令

一、systemctl命令简介 CentOS 5使用SysV init;CentOS 6使用Upstart,CentOS 7使用Systemd管理守护进程。centos7采用 systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。独立服务的服务启动脚本都在目录 /usr/lib

[转帖]解析Linux gcore: 揭示程序内存捕获的秘密(linuxgcore)

https://www.dbs724.com/133618.html Linux gcore 是一种在Linux系统中使用命令行工具捕获进程内存内容的方法。它允许程序员制定程序的一个内存快照,从而帮助他们了解在特定时刻,程序的内部状态是什么状态。 通过生成一个进程的Core文件(也称为“内存快照”或

[转帖]VMware-ovftool命令行部署与导出镜像

ESXI6.0之后管理为WEB,OVF导出/部署是个渣渣,如果虚拟机文件过大,一般会报网络异常中断而失败,可使用官方ovftool工具解决,快而方便,支持linux和Mac OSX,可脚本操作,批量处理等。 在windows如已经安装vmware workstation,有个OVFTool目录直接可

[转帖]使用 find 命令在 Linux 上查找文件和目录

https://linux.cn/article-14071-1.html 学习 find 命令的原因有很多。 不管我决心如何组织文件,似乎总有无法找到文件的时候。有时是因为我不记得最初的文件名,其他时候,我知道名字,但我不记得在哪里保存它了。甚至有时我需要一个我最初就没有创建的文件。但是,无论遇到

[转帖] Linux文本命令技巧(上)

Linux文本命令技巧(上) 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 前一篇我介绍了awk,这是一个全能的文本处理神器,因为它本身就是一门编程语言了,但对于很多场景,使用Linux预设的一些文本处理命令,会更方便快捷,如grep、sed等。本篇就来介绍