我怎样才能删除特定字符串之前的所有行从许多文件 [英] How can I delete all lines before a specific string from a number of files

查看:74
本文介绍了我怎样才能删除特定字符串之前的所有行从许多文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有n个文件,如:

文件1:

  1AAA
2eee测试XXX
汉娜
拉尔斯

文件2:

  1FFF
2ddd
3zzz测试XXX
麦克风
查理

我想从所有N文件中删除测试XXX之前的所有行。
行删号文件之间变化。

我的想法:

 文件中1:N

POS = grep的-n测试XXX的文件$文件
SED -i1:$ POS-1 D文件$文件>新建文件$
DONE


解决方案

这应该为你工作:

  SED -i'1 /测试XXX / D'文件1
SED -i1 /测试XXX / D'文件2

或只是

  SED -i'1 /测试XXX / D'文件*

I have n files, like:

file1:

1aaa
2eee

Test        XXX
Hanna
Lars 

file2:

1fff
2ddd
3zzz

Test        XXX
Mike
Charly

I want to remove all rows before "Test XXX" from all n files. The number of rows to delete varies between files.

My idea:

for file in 1 :n
do
pos=grep -n "Test XXX" file$file
sed -i "1:$pos-1 d" file$file >new$file
done

解决方案

This should work for you:

sed -i '1,/Test XXX/d' file1
sed -i '1,/Test XXX/d' file2

or simply

sed -i '1,/Test XXX/d' file*

这篇关于我怎样才能删除特定字符串之前的所有行从许多文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆