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}文件