У меня есть файл, который имеет несколько строк, как показано ниже
ABCD|100.19000|90.100|1000.000010|SOMETHING
BCD|10.100|90.1|100.019900|SOMETHING
Теперь, после применения sed
к этому, я бы хотел, чтобы вывод был таким, как показано ниже (чтобы использовать его для дальнейшей обработки)
ABCD|100.19|90.1|1000.00001|SOMETHING
BCD|10.1|90.1|100.0199|SOMETHING
то есть я бы хотел, чтобы все конечные нули (те, что перед |
) были удалены из результата.
Я попробовал следующее: (regtest - это файл, содержащийисходные данные, как показано выше)
cat regtest | sed 's/|\([0-9]*\)\.\([0-9]*\)0*|/|\1\.\2|/g'
Не сработало, так как я думаю, что оно жадное.
cat regtest | sed 's/|\([0-9]*\)\.\([0-9]*\)0|/|\1\.\2|/g'
Будет работать.Но мне придется применять эту команду sed
несколько раз к одному и тому же файлу, чтобы удалять нули один за другим.Не имеет смысла.
Как я могу это сделать?Спасибо!