2014-12-13 148 views
-1

我有CSVish的數據文件perl正則表達式刪除特定行

某些條目沒有任何逗號,因爲它們是副標題。我想刪除這些行。

下面的示例數據(原諒通用數據)
我想要一個正則表達式/ perl一個班輪刪除所有的字幕行。預先感謝您

Title1 Books, 
subtitleA 
items,1,2,3,4 
days,1,2,3,4 
subtitleB 
items,1,2,3,4 
days,1,2,3,4 
Title2 Posters, 
subtitleC 
items,1,2,3,4 
days,1,2,3,4 
subtitleD 
items,1,2,3,4 
days,1,2,3,4 
+0

'的grep -v,file' – toolic 2014-12-13 17:41:14

回答

3

使用下面的正則表達式匹配所有沒有逗號的行。

^[^,\n]+$ 

^[^,\n]*$ 

後,你可以刪除匹配的行。

Perl單線程。

$ perl -ne 'print unless /^[^,]+$/' file 
$ perl -ne 'print unless /^[^,\n]+$/' file 
Title1 Books, 
items,1,2,3,4 
days,1,2,3,4 
items,1,2,3,4 
days,1,2,3,4 
Title2 Posters, 
items,1,2,3,4 
days,1,2,3,4 
items,1,2,3,4 
days,1,2,3,4 
3

使用-i在地方編輯,

perl -i -ne 'print if /,/' file