我怎样才能删除特定字符串之前的所有行从许多文件 [英] How can I delete all lines before a specific string from a number of files
本文介绍了我怎样才能删除特定字符串之前的所有行从许多文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有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屋!
查看全文