Я пытаюсь найти способ использования sed или awk, который найдет известную строку, скажем «имя» в известном имени файла, скажем, «filename.txt». После каждого появления строки «имя» есть пробел, а затем есть десятичное значение, которое может варьироваться от 0,00001 до 999,99999, с таким количеством чисел как до, так и после deicmal. В большинстве случаев значение имеет тип X.XXXXX. Это значение всегда появляется после строки «name». Я хочу, чтобы иметь возможность заменить это десятичное значение, которое появляется после «name» со значением, которое я ему даю, позволяет сказать «mydecimalvalue».Найти строку и заменить десятичное значение после нее
Аналогичным образом, если «имя» не существует в «filename.txt», я хотел бы добавить его после строки «name1», которая известна и будет присутствовать в каждом файле «filename.txt». Есть идеи? Объяснение также было бы очень полезно, так как я могу легко потеряться в регулярных выражениях и значениях параметров.
Например, filename.txt может выглядеть следующим образом:
garbage 10.34420
name1 34.23000
name 8.32345
moregarbage 4.23324
Я хочу, чтобы заменить "имя 8.32345" с "именем 15.43200", например. Если «имя», за которым следует любой тип значения, не существует нигде в файле, я хочу написать «имя 15.43200» сразу после «name1 34.23000». Если в файле существует «имя», можно предположить, что он будет существовать только один раз во всем файле. Спасибо!
пожалуйста, рассмотреть вопрос о замене этого сложного описания с некоторой выборки данных, которая охватывает случаи, необходимые для поддержки и требуемая мощность для этих данных. Обратите внимание, что вы можете использовать инструмент {} на панели форматирования, чтобы отступать от кода и данных. Удачи. – shellter