Я хочу заменить определенное поле текста, сохраняя при этом тот же пробел:
Например, мой текст:
Please help me with this problem
Any suggestion or help will be appreciated
Thanks to all who give help
И я хочу заменить предложение "Любое предложение или помощь будут оценены "с" Я хочу решение "
Так что текст будет:
Please help me with this problem
I want the solution
Thanks to all who give help
У меня есть решение:
awk '{if($1=="Any" && $2=="suggestion" && $3=="or" && $4=="help" {$1="I";$2="want";$3="the";$4="solution"};print $0}' eg.txt
Я получу
Please help me with this problem
I want the solution will be appreciated
Thanks to all who give help
Как видите, у него две проблемы
(1) пробел не одинаков с другими.
(2)$ 5, $ 6, $ 7 " будут оценены " из прежней строки все еще сохраняются.
Я знаю другое решение:
awk '{if($1=="Any" && $2=="suggestion" && $3=="or" && $4=="help" print "I want the solution";print $0}' eg.txt
решит проблемуНо мне просто интересно, есть ли лучший способ?Большое спасибо за ваше внимание!