2014-01-16 3 views
2

У меня есть файл, который выглядит следующим образом:

2360 111037877 111105745 111161458 
505 111128359 111026865 111006164 
375 117170057 0 0 
247 117086016 0 0 
613 117030996 117010050 117029287 

Я хочу изменить все значения в столбце 3 к нулю, так что файл выглядит следующим образом:

2360 111037877 0 111161458 
505 111128359 0 111006164 
375 117170057 0 0 
247 117086016 0 0 
613 117030996 0 117029287 

Как это сделать? Я знаю, что это очень простой вопрос, но я не могу это сделать с awk. Я пытался сделать что-то вроде этого:

awk '{$3 = 0}' old file > new file 

и

awk '$3 == "*" { $3=0}' old file > new file 

ответ

5

Ваша первая попытка была почти хорошо, вы просто забыли напечатать строку:

awk '{$3 = 0; print}' 

Более короткая версия то же самое:

awk '{$3 = 0}1' 
+0

Thank you. Это сработало. – user3108631

2

Вы просто урожденные d до print $0

% awk '{$3=0;print $0}' inp.txt 
2360 111037877 0 111161458 
505 111128359 0 111006164 
375 117170057 0 0 
247 117086016 0 0 
613 117030996 0 117029287 
+0

Спасибо. Это сработало. – user3108631

Смежные вопросы