Недавно на работе в рамках написания функциональных тестов на шедулеры встретилась такая задача.Есть CSV-файл с (тестовой) информацией о заказах, в нем две колонки, в первой дата, во второй - число, представляющее quantity на эту дату.
Требуется - получить CSV файл, в котором все значения во второй колонке умножены на 3 (4, 5, какой-то множитель). Следующий скрипт на Groovy решает эту задачу (думаю, его можно еще сократить и причесать, но все же выложу как есть).
def path = "source.csv"
def pathNew = "target.csv"
def oldFile = new File(path)
def newFile = new File(pathNew)
newFile.withWriter { out ->
oldFile.eachLine { line ->
out << line.replaceAll(/,(\d)*/, {x, y -> ',' + (x[1..(x.size()-1)].toInteger() * 3).toString()} ) << '\n'
}
}
RSS порвало в клочья :)
ОтветитьУдалить