2015-12-02 35 views
0

我有一個auto_generated文件,可能會有重複的數據,這會導致我的解析器崩潰。我該如何逐行檢查並根據它在bash上具有的字符刪除不需要的行?例如:如何複製或刪除bash中的特定行並將它們創建爲新文件

for line in file.txt: 
      if '(1)' in line: 
       delete line 
      elif '(2)' in line: 
       delete line 
      elif '(3)' in line: 
       delete line 
      else: 
       return (file.txt with those lines removed) 

採樣輸入

Hello my name is john 
Hello my name is eric 
Hello my name is jonh(2) 
Hello my name is ray 
Hello my name is john (1) 
Hello my name is eric (3) 

樣本輸出

Hello my name is john 
Hello my name is eric 
Hello my name is ray 
+2

請爲樣本輸入添加樣本輸入和您想要的輸出到您的問題。 – Cyrus

+1

你嘗試過'grep -v'嗎? – chrisaycock

回答

1

要排除有線條圖案( +字母+ ),你可以這樣做:

grep -v '(.)' file 

如果你想信是一個數字:

grep -v '([0-9])' file 

如果要排除一個特定號碼:

grep -v '(1)' file 

如果要排除多個具體的數字:

grep -v '([123])' file 

如果要排除多個不同圖案

grep -v -e pattern1 -e pattern2 -e pattern3 file 
+1

我想用多個'-e'標誌給出一個具有多種模式的例子。但是你說得對,那點不夠清楚。我更新,使更清晰,謝謝指出 – janos

+0

非常感謝,這是有幫助的 –

+0

道歉的格式。 請使用下面的代碼。 '進口重新 FLE =開放( '文本', 'R') DAT = fle.readlines() 對於i中的DAT: 如果不是re.findall(R'\([0-9] {1,3} \)',str(i)): print i.rstrip()' – rickydj

相關問題