LINUX.ORG.RU

Прошу помощи с awk

 


0

1

Есть очень большой csv-файл, разделитель «|». Нужно взять с него некоторые колонки и положить в другой файл, при этом сохранить структуру разделителя. Когда я делаю так

awk -F'|' '{print $2, $4, $5, $6}' file.csv | less

то строка идет без разделителя.

На конструкцию вида

awk -F'|' '{print $2, $4, $5, \| $6}' file.csv | less

ругается

awk: cmd. line:1: {print $2, $4, $5,\| $6}

awk: cmd. line:1: ^ backslash not last character on line

awk: cmd. line:1: {print $2, $4, $5,\| $6}

awk: cmd. line:1: ^ syntax error

Как в вывод добавить разделитель? Спасибо.

Перемещено leave из talks

★★★★

Ответ на: комментарий от shdown

Вот так вроде красивее

awk -F'|' '{printf("|%s|%s|%s|%s|%s|%s|%s|%s\n") $2, $4, $5, $6, $7, $8, $9, $10, $11}' file.csv | less

Потому что с твоей конструкцией там будут лишние пробелы, а файл потом надо импортировать в базу данных :) Все равно, спасибо за отклик)

dnb ★★★★
() автор топика
Последнее исправление: dnb (всего исправлений: 2)
Ответ на: комментарий от unterwulf

Вот так вообще круто, а то после awk остались косяки в виде съезда первого поля из хидера на пункт ниже.

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