catgrep过滤某行数据
① shell grep 的结果只取第一行
可以使用head -1 命令来只取到的数据的第一行。
例如一个文本文档a.txt内容是:
北京是我们的首都
北京天安门坐落在中华人民共和国首都北京市的中心
我在北京天安门广场吃炸鸡
使用命令 cat a.txt |grep 北京 | head -n 1 可以只取到第一行的数据北京。
(1)catgrep过滤某行数据扩展阅读
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
② Linux提取文件中特定的某些行的命令
sed -n -e '/you-y[0-9]\{3\}-[5|3]m/p' file >> newfile
grep 'you-y[0-9]\{3\}-[5|3]m' file >> newfile
gawk '/you-y[0-9][0-9][0-9]-[5|3]m/' file >> newfile
awk --posix '/you-y[0-9]{3}-[3|5]m/' file >> newfile
③ 使用Shell过滤第N行里面带有某个数据的内容
sh-3.2# cat b
a-b b-c c-d d-e - e-f
a-b b-c c-d d-e af e-f
a-c b-c c-d d-f e-f a-c
a-d b-d c-e e-f f-c c-a
sh-3.2# awk '{if($5~"-")print $0}' b
a-b b-c c-d d-e - e-f
a-c b-c c-d d-f e-f a-c
a-d b-d c-e e-f f-c c-a
④ linux中如何提取文件中特定的行
|cat file1 file2 |来sort|uniq -c |grep -v " 2 "|cut -d" " -f 2-
如果你的文件每源行都是维一的可以这样处理.
grep -v 后面的 " 2 " 可以按着你的实际情况前面多加几个空格.
⑤ 利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容
1、在linux目录/root下建立抄一个txt文件袭,内容如下,使用|竖线分割,作为我们的实验数据样本。
⑥ 如何使用grep筛选出含有A或者B字符的行
me@ubuntu:grep$cattest.txt
aa123
AA123
AABB123
BB123
me@ubuntu:grep$grep-e'AA'-e'BB'./test.txt
AA123
AABB123
BB123
⑦ .cat /etc/smb.conf 文件时 如何将 # (井号注释行)和 ; (分号注释行)过滤掉
^cat smb.conf |grep -v "#" |grep -v "^;"|grep -v "^$"
第一个grep是过滤带#号的行,第二专个grep过滤以;号为开头属的行,第三个grep过滤掉所有的空行。
或者 grep -v "#" /etc/samba/smb.conf |grep -v "^;" | grep -v "^$"
⑧ grep怎么取出某文本里面的两行: 比如:文本的内容为
|用grep-E就可以搞定,如下是虚拟机上的验证结果
[root@专localhost Desktop]# echo "<a> sajfasjf" >123.txt
[root@localhost Desktop]# echo "<b> yedrgsd" >>123.txt
[root@localhost Desktop]# echo "<c> jfamfoias" >>123.txt
[root@localhost Desktop]# echo "<d> 1242353425" >>123.txt
[root@localhost Desktop]# cat 123.txt
<a> sajfasjf
<b> yedrgsd
<c> jfamfoias
<d> 1242353425
[root@localhost Desktop]# grep -E '<a>|属<b>' 123.txt >>temp.txt
[root@localhost Desktop]# cat temp.txt
<a> sajfasjf
<b> yedrgsd
[root@localhost Desktop]#
⑨ 用grep怎么过滤出文本中包含23个tab的行
不知道你是想实现什么目的,如果你是想只显示配置文件中的以 # 号开头的行,那就使用内 # grep ^# filename 如果是想显容示除 # 号开头的行的话呢,只需加个参数-v (-v 表示相反的过滤)就行了 # grep -v ^# filename
⑩ linux用grep在文件中查找字符串并显示字符串在文件中的行号
grep -niR '想要查找的字符' xxx
注:n,显示行号R,查找所有文件包含子目录i,忽略大小写 最后的“xxx”表示想要查找的文件名