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追问

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

相关了解……

你可能感兴趣的内容

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