linux shell命令怎么查找文件中指定字符串,并把这个字符串所在行和下面一行的内容写到另外一个文件中?

作者&投稿:伏影 (若有异议请与网页底部的电邮联系)
查找linux系统上指定文件中字符串的所在行及其上下几行的内容~

cat /etc/passwd | grep -A5 root
文件passwd中查找包含root的后5行

B是前n行,忘了是大写还是小写的
A for after
B for before

1、在linux目录/root下建立一个txt文件,内容如下,使用|竖线分割,作为我们的实验数据样本。

2、sed用法、sed-n'xp'data.txt;显示文件X行数据,获取第18行数据,即为sed-n'18p'data.txt。

3、sed-n'开始行,结束行p'data.txt;显示文件X行到Y行的内容:命令:sed-n'10,18p'data.txt。

4、head/tail用法。tail用法:tail经常用来查看文件末尾的数据,在shell中可以获取文本中指定数据行。tail-n-3data.txt获取文件最好3行数据。tail-n+3data.txt获取文件3到最后一行数据。

5、head用法:head经常用来显示文本的前n行数据。head-n10data.txt显示文本请10行数据。

6、tail和head的结合使用:例如获取文本倒数第二行数据,结果如图所示。命令:tail-n2data.txt|head-n1。

7、awk用法、awk在文本处理方面有着强大的功能,配合脚本使用,可以打印指定行和列。awk'NR==18{print}'data.txt。NR指定行号。

有两种写入方式:

1、grep -i "aaa" -A 1  1.txt | grep -v  -e  "--" >2.txt

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。

2、awk '/aaa/{getline var;print $1"
" var}' 1.txt >2.txt

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。



这个问题太有想像力了,命令如下。

grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txt

awk '/aaa/{getline var;print $1"\n" var}' 1.txt >2.txt


锦屏县17774217053: 查看linux中shell的几种方法汇总 -
滕冰复方: 查看当前发行版可以使用的shell [jack@localhost ~]$ cat /etc/shells/bin/sh/bin/bash/sbin/nologin 查看当前使用的shell 一、最常用的查看shell的命令,但不能实时反映当前shell [jack@localhost ~]$ echo $SHELL/bin/bash二、下面这个用法...

锦屏县17774217053: linux怎么通过shell查找到某一个文件的绝对路径 -
滕冰复方: 在Linux系统中,查找文件一般采用find命令,格式为:“find [查找路径] 寻找条件 操作”.具体使用方法,楼主可以参考一下这篇文章:http://www.linuxprobe.com/chapter-02.html#26 更多Linux系统操作知识,楼主可以百度《Linux就该这么学》.

锦屏县17774217053: linux程序里面怎么获取shell命令结果 -
滕冰复方: 用 $? 获取上一条shell命令的返回结果.0 表示成功,非0表示失败.执行一条shell命令,然后紧接着 echo $? 看看

锦屏县17774217053: linux怎么查找一个文件是否存在 -
滕冰复方: 两个方式:find命令或者shell脚本. 1、find命令 find是linux下用于查找文件的通用方法. find语法: find [指定查找目录] [查找规则] [查找完后执行的action] 例如:find /tmp -name wa* -type l ,是在/tmp下查找名为wa开头且类型为符号链接的文件...

锦屏县17774217053: linux怎么查用户shell -
滕冰复方: 一、最常用的查看shell的命令,但不能实时反映当前shell [root@localhost ~]$ echo $SHELL /bin/bash二、下面这个用法并不是所有shell都支持 [root@localhost ~]$ echo $0 -bash三、环境变量中shell的匹配查找 [root@localhost ~]$ env | grep ...

锦屏县17774217053: linux Shell怎么查找指定文件,并进入该文件所在目录,目录有空格 -
滕冰复方: 1.使用绝对路径执行的shell文件(如/home/xxx/binfile) 直接使用dirname $0即可 2.对于使用相对路径执行的shell文件(如 ./xxx/binfile) pwd与dirname结合使用;pwd获得的是执行当前shell文件时,用户所在的位置;dirname可以获得相对于...

锦屏县17774217053: 怎样查看Linux系统当前的shell类型 -
滕冰复方: 1、实时查看当前进程中使用的shell种类:g 代码如下: ps | grep $$ | awk '{print $4}' (注:$$表示shell的进程号) 2、最常用的查看shell的命令,但不能实时反映当前shell 代码如下: $ echo $SHELL 3、更简洁,但并不是所有shell都支持 代码如...

锦屏县17774217053: linux怎样搜索文件或文件夹 -
滕冰复方: find命令,它使用起来功能强大,但是也很复杂 比如fing / 就是查找根目录下的所有文件 它有许多可用参数,-name后加文件名,-perm后加权限,-exec或-ok用来在查找文件后执行shell命令,如找到一些文件然后删除,-newer用来寻找比某个文件新的文件,还有许多 另外就是whereis,用来查找命令所在的位置比较不错 还有slocate,后面直接加文件名就行了,但是要先用updatedb命令来更新数据库,这样才能找到最新的文件

锦屏县17774217053: linux shell 命令求解1.查找命令的历史记录,将所有包含“rm”或“rmdir”的命令过滤出来,并将其保存在文件rmrecord中,要求在文件的末尾附上过滤的时... -
滕冰复方:[答案] 1.history|awk '{ if ($2 == "rm" || $2 == "rmdir") print $0 }' > rmrecord.`date "+%Y%m%d-%H%M%S"` 2. a. w | wc -l b. w|grep -v 192.168.0.1|wc -l

锦屏县17774217053: linux shell命令怎么查找文件中指定字符串,并把这个字符串所在行和下面一行的内容写到另外一个文件中? -
滕冰复方: 这个问题太有想像力了,命令如下.grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txtlinux shell命令怎么查找文件中指定字符串,并把这个字符串所在行和下面一行的内容写到另外一个文件中?

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网