① shell grep 的结果只取第一行
可以使用head -1 命令来只取grep到的数据的第一行。
例如一个文本文档a.txt内容是:
北京是我们的首都
北京天安门坐落在中华人民共和国首都北京市的中心
我在北京天安门广场吃炸鸡
使用命令 cat a.txt |grep 北京 | head -n 1 可以只取到第一行的数据北京。
(1)linuxshell读取指定行扩展阅读
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编写一个shell脚本 比如有20行~输入第20行 就提取15到19行的内容~怎么解~谢谢大神指导
#!/bin/sh
read-p"Inputlinenum:"line
letend=line-1
sed-n"15,${end}p"file.txt
我理解你的意思抄是根据你输入的行数从一个已存在的文件中提取内容。
脚本中假设此文件为file.txt,位于脚本同目录下。
③ linux shell 如何读取文件特定位置的数据
题主你好,
测试所用的文本文件t1内容如下:
=====
希望可以帮到题主, 欢迎追问.
④ 何如利用linux shell 脚本实现从不同文件中提取某一列或多列组成新文件
楼主可以用cut命令实现。
我先编辑了两个文件a,b,内容如下
aaa:bbb:ccc
ddd:eee:fff
b文件内容如下:
AAA:BBB:CCC
DDD:EEE:FFF
如果想把a,b中第1,3字段提取出来输出到c文件中,则可这样实现:
cat a b | cut -d ':' -f 1,3 > c
(解释:-d 后接分隔符,这里为冒号,也可以为其他的,看你的具体文件; -f 依据-d分隔符将得到的数个字段的第几字段提取出来,这里是提取第1,3字段)
运行结果:(c文件里的内容)
aaa:ccc
ddd:fff
AAA:CCC
DDD:FFF
当然这里有一个限制就是要好统一的分隔符“:”,这是这个命令的不足之处。
肯定还会有其他好的方法,不过我目前就只知道这么多了。
⑤ Linux shell 读取文本中某几行数据并输出成新文件
# for file in `ls abc*.xml`;do sed -n -e '1,10p' -e '50,60p' $file > ${file}_new;done