linux shell怎么查找文件中指定字符串,并把该字符串和下一行的内容写到另一个文件中?

比如1.txt文件中内容
aaa:
1234
bbb:
5678
aaabbb:
1988
要把aaa所在行及下一行内容写到2.txt文件中。
处理结果2.txt:
aaa:
1234
aaabbb:
1988
最新回答
谁都逃不过

2024-05-06 12:55:41

有两种写入方式:

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