Linux技巧:如何有效过滤之一行内容? (linux 过滤之一行)

Linux技巧 涉及Linux系统的各种实际问题,其中过滤之一行内容是其中一个经常需要处理的问题。对于那些对Linux系统不熟悉或只是新手的人来说,此任务可能会显得很棘手。但是,使用Linux的过滤器,要过滤之一行内容其实很容易。下面就介绍一些简单、快速的方法。

之一种方法:使用tl -n+2

Tl 是一种非常优秀的Unix/Linux命令,用于查看文件的末尾几行内容。在过滤之一行的情况下,使用tl命令是相当简单和快速的。使用tl -n+2命令阅读文件内容,并略过之一行。这意味着,您可以在使用tl命令时,指定任意数目的行。

$ tl -n+2 file.txt

你可以将“file.txt” 替换成您要过滤的文件名。如果您想将过滤出的内容输出到终端屏幕上,而不是将它们保存到新文件中,则可以使用下面的命令。

$ tl -n+2 file.txt | less

这将在终端中显示命令输出的内容。less命令将启动类似于vim编辑器的交互式屏幕,可以自由浏览过滤后的内容。

第二种方法:使用awk

awk是一种强大的文本处理工具。如果您使用过它,那么您可能知道awk可以轻松地过滤之一行。请观察以下命令。

$ awk ‘NR > 1’ file.txt

如果您想将过滤出的内容保存到新文件中,可以使用下面的命令。

$ awk ‘NR > 1’ file.txt > newfile.txt

此命令将仅保存file.txt中的第二个及其后面的所有行,新文件将被命名为newfile.txt,并将其保存在当前目录中。

第三种方法:使用sed

Sed是另一种在Linux系统中广泛使用的文本处理工具。使用它来过滤之一行内容也是一个很好的选择,而且不需要什么复杂的命令。下面是一个简单的命令,使用sed过滤之一行。

$ sed -n ‘2,$p’ file.txt

这将略过文件的之一行,并输出文件的其余部分。如果您想将过滤出的内容保存到新文件中,而不是输出到终端,则可以使用下面的命令。

$ sed -n ‘2,$p’ file.txt > newfile.txt

这将创建一个名为newfile.txt的新文件,其中仅包含第二行及其后面的所有内容。

结论:

这三种方式都是过滤之一行的好方法,根据您的需要选择。有些工作对于每天使用Linux的人来说可能会变得无聊和模拟,但实际上,这些任务可能会更快地通过掌握这些简单的技能和方法来完成工作。如果您是一个新手,在Linux系统中执行各种任务时,这些技巧无疑会让您轻松自如。

相关问题拓展阅读:

  • linux三剑客的基本使用——grep、sed、awk
  • shell grep 的结果只取之一行
  • Linux:如何用管道查看一个文件从第二行到最后一行的所有行(除之一行)

linux三剑客的基本使用——grep、sed、awk

grep、sed、awk是linux功能非常强大的三个命令,grep是查找过滤文本,sed是对文本进行编辑替换,awk是对文本进行分析报告。

最简单的理解就是找什么东西用grep,想修改什么内容用sed,想格式化内容用awk。

创建一个文件名为grep_text.txt的文件,并放入内容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我要查找在grep_text.txt文件里有Silly的行

命令是: grep Silly grep_text.txt

会返回内容:SillyMadman is both a madman and a fool.

也可以带以下参数,这些我认为可能容易用到的参数,其它的参数需要另行查找

文档,比如可以使用正则进行匹配。

内容相关的

-B, –before context=NUM显示所在行之前的行数

-A, –after context=NUM显示所在行之后的行数

-C, –context=NUM打印输出上下文的行数

过滤内容相关的参数:

-i, –忽略大小写区分

-w,–匹配查找的整个单词

-x,–匹配查找的整行文本

-v, –过滤掉匹配的内容

输出内容相关的参数

-n, –行号打印带有输出行的行号

比如,我要查找在grep_text.txt文件里不区分大小写查找sillymadman,并显示行号和匹配文本纯此的下一行,那么我可以用以下命令查找

grep sillymadman grep_text.txt -i -n -A1

内容返回为

1:SillyMadman is both a madman and a fool.

2-Everyone agrees with this sentence.

总体而言grep的使用方式就是

grep (查找的内容) (文件名)

grep也经常搭配管道符号做弊迅”|”使用,比如我要查询某程序的进程,并去掉查找进程本身,那么命令为

ps -ef | grep program_name | grep -v grep

再创建一个文件名为sed_text.txt的文件,并放入内容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我想要在之一行下面添加一句:woshishazi

命令是:sed ‘1a\woshishazi’ sed_text.txt

返回内容为:

SillyMadman is both a madman and a fool.

woshishazi

Everyone agrees with this sentence.

但是以上这个命令不会修改原文件,如果需要,需要加上-i

sed -i ‘1a\woshishazi’ sed_text.txt

上面a是代表append,从指定行后面新的一行添加数据,还有其他操作

操作有以下这些

a :从下面一行新增

i :从上面一行插入,

d :删除

c :整行替换

p :打印

s :对指定内容进行替换

下面稍卜晌微举下例:

a: sed ‘1a\woshishazi’ sed_text.txt 从之一行后面添加

i: sed ‘1i\woshishazi’ sed_text.txt 从之一行前面插入

d: sed ‘1d’ sed_text.txt 删除之一行

c: sed ‘1c\woshishazi’ sed_text.txt 替换之一行内容为woshishazi

p: sed -n ‘1p’ sed_text.txt 打印之一行,一般搭配-n使用,其他内容就不会再展示

s:这个相对复杂一点需要详细说明一下

sed的参数为 ‘s/要被替换的内容/新的内容/g’

行是一个可选项,可以选择具体的行进行替换

g代表替换所有匹配到的内容,也可以改为数字,表示第几次匹配到时进行替换

sed ‘s\SillyMadman\shafengzi\g’ sed_text.txt ,将所有SillyMadman替换为shafengzi

输出结果为:

shafengzi is both a madman and a fool.

Everyone agrees with this sentence.

最后再创建一个文件名为awk_text.txt的文件,并放入内容:

1 a

2 b

3 c

4 d

5 f

以空白符作为

分隔符

这个文本相当于每一行有两个字段。

那么打印之一个字段时 awk ‘{print 0的话,则代表打印所有字段

awk默认以空白符作为分隔符,也可以指定分割符通过-F

awk -F: ‘{print $1}’ awk_text.txt,以“:”作为作为分隔符

那么返回内容就为

1 a

2 b

3 c

4 d

5 f

相当于只有一列或者说一个字段

然后还可以对前面加上一个正则对行进行匹配内容

awk ‘/a/{print 2 ~ /a/){print $1}’ awk_text.txt

返回内容为

shell grep 的结果只取之一行

可以使用head -1 命令来只取grep到的数据的之一行。

例如一个文本文档a.txt内容是:

北京是我们的首都

北京天安门坐落在中华人民共和国首都北京市的中心

我在北京天安门广场吃炸鸡

使用命令 cat a.txt  |grep  北京 | head -n 1 可以只取到之一行的数据

北京。

扩展资料

Linux中head命令详解:

head命令与tail命令用法相似,head命令用于查看文档的开始指定数量派睁的字符块,默认显示文档的前 10 行,如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。

1、grep命令用法格式

head 【参数】【文件】

2、命令选项

-c, –bytes=K   k,显示文档开始的前k个字节,-k,不族世显示文档结尾的最后 k 个字节

-n, –lines=K    k,显示文档开始的前k行,-k,不显示文档结尾的最后 k 行

-q, –quiet, –silent    不显示包含给定文件名的文件头

-v, –verbose    总是显示包含给定文件名的文件头

–help显示此帮助信尘穗岁息并退出

–version     显示版本信息并退出

3、实例

#显示前5行

head -n  5 head.txt

#显示前5个字节

head -c 5 head.txt

用head命令

grep *.*|head -n 1

Linux:如何用管道查看一个文件从第二行到最后一行的所有行(除之一行)

用sed工具配合正则表达式虚指尘实现,单引号内就是差禅正则

# sed -n ‘2,$p’ /etc/passwd

# cat /etc/passwd | sed -n ‘2,$p’

-n    仅输出符合条件的行逗纳

p    打印内容

2,$  第2行到最后一行。

建议你去查找sed工具的使用方法和正则表达式,熟悉正则表达式的元字符

祝你好运~~~

1、高雹携awk ‘{if(NR!=1) print }’ filename

2、cat filename | tail -n +2

3、戚伏肆链 cat file|sed -n ‘2,$p’

这三种都可以~~~

sed -n ‘2,$p’ a.txt

关于linux 过滤之一行的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Linux技巧:如何有效过滤之一行内容? (linux 过滤之一行)》
文章链接:https://zhuji.vsping.com/23678.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。