我有以下文字,我试图将几个正则表达式匹配的行提取到一个单独的文本文件中。使用的正则表达式是
^[A-Z][ \t].*$
并匹配所需的行。我正在努力解决的问题是将匹配的行分成单独的文本文件。我试过sed,但无法实现任何有用的东西。
示例数据:
272106 EGGXZOZX
(NAT-1/2 TRACKS FLS 310/390 INCLUSIVE
DEC 28/1130Z TO DEC 28/1900Z
PART ONE OF TWO PARTS-
A ERAKA 59/15 59/20 59/30 58/40 57/50 LOACH FOXXE
EAST LVLS NIL
WEST LVLS 310 320 330 340 350 360 370
EUR RTS WEST ETSOM
NAR NIL-
B GOMUP 58/15 58/20 58/30 57/40 56/50 SCROD VALIE
EAST LVLS NIL
WEST LVLS 310 320 330 340 350 360 370 380 390
EUR RTS WEST GINGA
NAR NIL-
C SUNOT 57/20 57/30 56/40 55/50 OYSTR STEAM
EAST LVLS NIL
WEST LVLS 310 320 330 340 350 360 370 380 390
EUR RTS WEST NIL
NAR NIL-
END OF PART ONE OF TWO PARTS)
期望的结果:
A ERAKA 59/15 59/20 59/30 58/40 57/50 LOACH FOXXE
B GOMUP 58/15 58/20 58/30 57/40 56/50 SCROD VALIE
C SUNOT 57/20 57/30 56/40 55/50 OYSTR STEAM
非常感谢任何帮助或推动正确的方向。
一切顺利, 克里斯
工作解决方案:
@anubhava让解决方案最适合我:
grep '^[A-Z][[:space:]]' file > out.txt
谢谢!
答案 0 :(得分:2)
这解决了吗?
grep -e '^[A-Z][ \t].*$' inputfile.txt > outputfile.txt
答案 1 :(得分:1)
我相信这个grep
应该有效:
grep '^[A-Z][[:space:]]' file > out.txt
或使用awk:
awk '/^[A-Z][[:space:]]/' file > out.txt
或使用sed:
sed -n '/^[A-Z][[:space:]]/p' file > out.txt
答案 2 :(得分:0)
这个正则表达式更具限制性,它匹配行的精确格式,而不仅仅是字符串前面的单个字符。
grep -Po '^[A-Z]\s+[A-Z]+\s([0-9]+/[0-9]+\s+)+[A-Z ]+$' file