LINUX.ORG.RU

Работа с 2-мя столбцами в bash

 


1

1

Коллеги,

имею такой вывод команды:

a 123
b 27
c 8

Мне необходимо проделать кое-какие операции со вторым столбцом, и на выходе получить тот же вывод, но уже с другими значениями.

a x
b y
c z

Хотелось бы c минимальными операциями этого добиться и создать только конечный один файл с результатом.





man awk. Хотя, ничто не мешает делать read и работать со строкой как с списком (по крайней мере в rc).

quantum-troll ★★★★★
()
Ответ на: комментарий от quantum-troll

если создавать доп. файлы, то все понятно как сделать. Я же хочу в памяти сделать все операции, и на выходе иметь уже конечный 1 файл

Radio
() автор топика
Ответ на: комментарий от Radio
cmd | while(l=`{read}) echo $l(1) `{myfn $l(2)}

(для баша немного по другому, конечно)
Никаких доп. файлов.

Другой вариант:

cmd | awk ...
awk обрабатывает файлы построчно и разбивает на слова, с ним даже проще может быть.

quantum-troll ★★★★★
()
Последнее исправление: quantum-troll (всего исправлений: 2)
Ответ на: комментарий от Radio

AWK там излишен.

cmd | 
  while read A B ; do
    : # здесь в A первое поле, в  В - остаток строки,
      # без начальных/хвостовых пробелов, естественно.
  done

ABW ★★★★★
()
Ответ на: комментарий от DELIRIUM

если сказано, что 2 столбца, то лучше «{$2=f($2)}1»

$1 " " temp

а для этого есть запятая (причем более кошерный FS)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.