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

比如1.txt文件中内容
aaa:
1234
bbb:
5678
aaabbb:
1988
要把aaa所在行及下一行内容写到2.txt文件中。
处理结果2.txt:
aaa:
1234
aaabbb:
1988

没分了,下次有分一定给您,谢谢!

有两种写入方式:

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

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

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

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

linuxshell中引号的使用方法:

shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符,反引号(")对shell则有特殊意义。

如:abc="how are you" (bash/pdksh)

set abc = "how are you" (tcsh)

这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.

abc1='@LOGNAME,how are you!' (bash/pdksh)

set abc1='$LOGNAME,how are you!' (tcsh)

abc2="$LOGNAME,how are you!" (bash/pdksh)

set abc2="$LOGNAME,how are you!" (tcsh)。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
这个问题太有想像力了,命令如下。

grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txt本回答被提问者采纳
第2个回答  2013-03-02
awk '/aaa/{getline var;print $1"\n" var}' 1.txt >2.txt追问

谢谢两位回答,两种方法都试了都可以,多谢了。
其中第二种方法是从字符串开始截取第一行内容的

查找字符串中指定字符的位置查找字符串linux
1、用vim打开要查找的文件 2、在normal模式下\/即可进入查找模式,输入要查询字符串 3、光标停留在loop上 4、按下n会查找下一个,注意光标 更多命令:注意,如果没有安装vim,系统会提示安装语句,复制运行即可安装vim 参考资料:linux如何替换文件指定行的特定位置字符串?可以通过Shell脚本替换字符串方式...

linux shell怎么查找文件中指定字符串,并把该字符串和下一行的内容写...
1、grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txt grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读...

利用shell脚本如何提取一个文件中某一特定行和下面若干行的内容
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、hea...

如何在Linux下查找文件内容包含某个特定字符串的文件
-ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。options有如下几种:-name :按照文件名查找文件-perm :按照文件权限来查找文件-user :按照文件属主来查找文件-group :按照文件所属的组来查找文件-mtime -n +n 按...

linux下怎样在一个文件里面查找一个字符串?
在Linux环境下,若需在文件中查找特定字符串,有两种常见的方法。首先,你可以通过终端命令行工具grep来实现。只需输入`grep "要查找的字符串" 文件名`,例如,查找包含"www.dutycode.com"的test.txt文件。若想获取行号信息,添加`-n`选项,如`grep -n "www.dutycode.com" \/root\/zzh\/test\/*`...

linux查找字符串命令
grep -r youcode dir 例如:查找home下文件中查找hello,具体命令是 grep -r hello \/home 例如:在当前所有目录下文件中查找hello,不区分大小写,具体命令是:grep -ir hello . .2cto.com 从文件内容中查找匹配指定字符串的行,具体格式为:grep 被查找的字符串 文件名 从文件内容中查找与正则...

linux查找文件字符串linux查找文件字符串
grep-e“正则表达式”文件名 3、查找不匹配指定字符串的行:grep-v“被查找的字符串”文件名 4、查找时显示被查找字符串所在的行数 grep-n“查找的字符串”文件名 linuxC截取字符串?简单介绍下Shell字符串截取的详细方法,如截取指定字数、按指定的字符串截取、按指定要求分割。一、Linuxshell截取字符...

求助:LINUX常用SHELL命令
1 文件与目录操作命令1.1文件内容查询命令 grep、fgrep、egrepCODE:[Copy to clipboard]语法:grep[选项][查找模式][文件名1,文件名2,……]选项:QUOTE:-E 每个模式作为一个扩展的正则表达式对待-F 每个模式作为一组固定字符串对待,而不作为正则表达式-i 比较时不区分大小写-l 显示首次匹配匹配串所在的文件名并...

请问怎么在shell脚本中,替换文件多行里面的指定字符串
n 读取下一行 s\/123\/xyz\/g 将123替换为xyz,全局替换,同一行中出现几次替换几次 :a 设定跳转标签a \/eee\/!ba 若当前行匹配不上eee,则跳转到标签a处继续执行,构成一个循环。若匹配到eee,则退出循环,sed重新对读入的每行匹配aaa。由于sed没有加-n静默选项,所以默认对每行数据处理后都...

Linux Shell:替换某行数据的下一行的内容
其实你的问题简化问 查找包含aaaa的那行,然后把下面一行写成alias \/admin \/admin\/admin 很多方法,比如:sed '\/aaaa\/!b;n;calias \\\/admin \\\/admin\\\/admin' your_file

相似回答