读取并删除文件指定内容:匹配fromhere时删该行及后续3行
匹配"fromhere"时删除该行及后续3行的快速解决方案
问题说明
给定包含以下内容的文件:
testtesttestestetest fromhere 12345698712359 58981338913556 125879561546621 testtesttesttestestetest testtesttestestetest heretesttesttestestetest omheretesttesttestestetest fromhere 58981338913556 125879561546621 12345698712359 test1236547
需要实现:当某行匹配fromhere时,删除该行及其后续3行,最终得到如下格式的文件:
testtesttestestetest testtesttesttestestetest testtesttestestetest heretesttesttestestetest omheretesttesttestestetest test1236547
快速解决方案
使用awk命令可高效完成需求,执行以下命令:
awk '/fromhere/{n=4; next} n>0{n--; next} 1' input.txt > output.txt
命令逻辑解释
/fromhere/{n=4; next}:匹配到fromhere行时,设置计数器n=4(当前行+后续3行共4行需跳过),随后跳过当前行n>0{n--; next}:若计数器n大于0,说明仍在需跳过的行范围内,计数器减1并跳过当前行1:awk中1代表执行默认打印操作,所有无需跳过的行都会被输出到结果文件
内容的提问来源于stack exchange,提问作者Ultron
相关产品推荐
相关产品推荐

