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

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

没分了,下次有分一定给您,谢谢!
展开
 我来答
汐雨烟
2018-04-04 · TA获得超过1.7万个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:5.6万
展开全部

有两种写入方式:

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)。

让服务成就美好生活
推荐于2017-11-25 · 让服务成就美好生活!
让服务成就美好生活
采纳数:1497 获赞数:2381

向TA提问 私信TA
展开全部
这个问题太有想像力了,命令如下。

grep -i "aaa" -A 1 1.txt | grep -v -e "--" >2.txt
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汪雄辉拉
2013-03-02 · TA获得超过2966个赞
知道大有可为答主
回答量:1430
采纳率:0%
帮助的人:1633万
展开全部
awk '/aaa/{getline var;print $1"\n" var}' 1.txt >2.txt
追问
谢谢两位回答,两种方法都试了都可以,多谢了。
其中第二种方法是从字符串开始截取第一行内容的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式