2017-01-06 4 views
0

У меня есть текстовый файл, как показано нижеУдалить только модели, а не всю строку

OG1: Panda|Koala_1.2_animals Panda|Koala_extinct Elephant|Ostrich_1_0_mammal_bird 
OG2: Panda|Koala_1.2_animals Panda|Koala_cute Oyster|Ostrich_1_0_seafood_bird 
OG3: Panda|Koala_animals Platypus|Hummingbird_1_0_mammal_bird 
OG4: Platypus|Hummingbird_1_0_mammal_bird 

Я хочу, чтобы удалить любое слово, которое начинается с Panda | Koala до пространства, сколько никогда не раз появляется рисунок, чтобы получить

OG1: Elephant|Ostrich_1_0_mammal_bird 
OG2: Oyster|Ostrich_1_0_seafood_bird 
OG3: Platypus|Hummingbird_1_0_mammal_bird 
OG4: Platypus|Hummingbird_1_0_mammal_bird 

Я попытался с помощью

sed'/Panda|Koala/d' data.txt 

Это удаляет всю строку, которая содержит шаблон

ответ

2

Вы должны заменить пустую строку, используйте команду замены s/pattern/replacement/:

[^ ] означает символ, который не является пространством и g выполняет замену всех вхождений в строке.

+0

'sed 's/Panda Koala \ S * \ s * // g'' может быть лучше обработать вкладки. – karakfa

1
awk '{print " "$1,$NF}' file 

OG1: Elephant|Ostrich_1_0_mammal_bird 
OG2: Oyster|Ostrich_1_0_seafood_bird 
OG3: Platypus|Hummingbird_1_0_mammal_bird 
OG4: Platypus|Hummingbird_1_0_mammal_bird