Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex sed:需要删除除与字符串匹配的第一行或最后一行之外的所有行_Regex_Shell_Sed_Awk_Sh - Fatal编程技术网

Regex sed:需要删除除与字符串匹配的第一行或最后一行之外的所有行

Regex sed:需要删除除与字符串匹配的第一行或最后一行之外的所有行,regex,shell,sed,awk,sh,Regex,Shell,Sed,Awk,Sh,我有一个包含以下内容的文本文件 aa : 01 bb : 01 cc : 01 aa : 02 dd : 01 bb : 02 ee : 01 aa : 03 ff : 01 bb : 03 我需要保留第一个出现的包含字符串“aa”的行和最后一个出现的包含字符串“bb”的行 请帮忙。 输出应该是 aa : 01 cc : 01 dd : 01 ee : 01 ff : 01 bb : 03 您可以使用此awk: awk '!c && /^aa/{c=1;print;next}

我有一个包含以下内容的文本文件

aa : 01
bb : 01
cc : 01
aa : 02
dd : 01
bb : 02
ee : 01
aa : 03
ff : 01
bb : 03
我需要保留第一个出现的包含字符串“aa”的行和最后一个出现的包含字符串“bb”的行

请帮忙。 输出应该是

aa : 01
cc : 01
dd : 01
ee : 01
ff : 01
bb : 03
您可以使用此awk:

awk '!c && /^aa/{c=1;print;next} /^bb/{l=$0;next} !/^aa/ {print} END{print l}' file
aa : 01
cc : 01
dd : 01
ee : 01
ff : 01
bb : 03

如果我只需要保留文件中最后出现的“bb”,该使用什么命令?grep bb yourfile | tail-1@Harsha:使用:
awk'!c&&/^aa/{c=1;打印;下一个}!d&/^bb/{d=1;打印;下一个}/^(aa | bb)/{print}文件