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