我要在此文本中删除包含日期和页码的行。
我尝试删除包含发票,金额,储物柜数据的行下方的行。但无法找出正确的正则表达式。
轴
发票金额储物柜
489 849560.94 12
2014年8月3日星期三Page 1 ##删除
UB99
发票金额储物柜
512 1204873.89 99
2014年2月1日星期一##删除
我在尝试:
sed -i' /正则表达式/ {n; d;}'
有没有其他方法可以做同样的事情?
答案 0 :(得分:0)
如果您要删除的行包含"页面",请尝试通过匹配页面删除该行,如下所示:
sed -i '/page/Id' file_name
答案 1 :(得分:0)
以下是使用awk
cat file
Axis
Invoice Amount Locker
489 849560.94 12
Wednesday, August 2014 Page 1## to delete
UB99
Invoice Amount Locker
512 1204873.89 99
Monday, February 2014 Page 4## to delete
awk '/^Invoice/ {i=2} i--!=1' file
Axis
Invoice Amount Locker
Wednesday, August 2014 Page 1## to delete
UB99
Invoice Amount Locker
Monday, February 2014 Page 4## to delete
如果您想删除第二行跳转:只需增加i
awk '/^Invoice/ {i=3} i--!=1' file
Axis
Invoice Amount Locker
489 849560.94 12
UB99
Invoice Amount Locker
512 1204873.89 99
这是另一种方式。它存储行号并删除我们不想要的内容:
awk '/^Invoice/ {n=NR} !(n && NR==n+1)' file
Axis
Invoice Amount Locker
Wednesday, August 2014 Page 1## to delete
UB99
Invoice Amount Locker
Monday, February 2014 Page 4## to delete
awk '/^Invoice/ {n=NR} !(n && NR==n+2)' file
Axis
Invoice Amount Locker
489 849560.94 12
UB99
Invoice Amount Locker
512 1204873.89 99