2015-05-06 2 views
0

У меня есть файл, как этотПреобразование данных по постоянным

3 4 5 6 7 1 
4 5 4 4 4 4 
2 2 3 3 2 1 

и я хочу многократным каждой точки данных на константу (например, 10), чтобы получить следующие выходные данные

30 40 50 60 70 10 
40 50 40 40 40 40 
20 20 30 30 20 10 

У меня есть пытался это сделать, как это без успеха

awk '{i=1; while (i<=NF) print $i*10; i++}' 

ответ

2

Вы используете while цикл, в то время как простой for будет достаточно:

$ awk '{for (i=1; i<=NF; i++) $i*=10}1' file 
30 40 50 60 70 10 
40 50 40 40 40 40 
20 20 30 30 20 10 

while нуждается состояние отделки и вы не предоставляют ни. Кроме того, если количество циклов, которые нужно сделать, это фиксированное число, лучше просто использовать for.

Обратите внимание, что вы говорили print, чтобы каждое поле печаталось в другой строке. Заменяя каждый из них и используя 1 для печати, вы сохраняете формат.

+1

спасибо за объяснение – user1308144

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