LINUX.ORG.RU

Читать файл построчно и при помощи cut вырезать нужные куски. это первое что в голову приходит.

Kolins ★★★★
()

А в чем сложность-то?

awk -F; '/паттерн/ {print $x, $y, $z}'

Если нужно искать паттерн в определенном столбце, то $w == "паттерн"...

PawsOnFire
()

Всё хорошо до того момента, как в строках встретится разделитель. Ну и кавычки надо обрезать. Если ничего такого нет, то

IFS=","
while read family name mail;
do 
   echo "$family-$name-$mail"
done < file.csv
Ну и седом убрать кавычки.
Вообще, я бы не брал баш для этого.

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

Всё хорошо до того момента, как в строках встретится разделитель.

Это тоже при желании не сложно запрограммировать. Я вот уже публиковал скрипт, который из csv делает html таблицу. Понимает кавычки и запятые там. Вот вырезать нужные столбцы пусть будет домашним заданием:

#!/usr/bin/env bash

echo "<table>"
while read l; do
        echo " <tr>"
        while true; do
                if [[ ${l:0:1} == \" ]]; then
                        out=
                        for((i=1;;i++)); do
                                c=${l:i:1}
                                [[ -z $c ]] && break
                                if [[ $c == \" ]]; then
                                        ((i++))
                                        c=${l:i:1}
                                        [[ $c == , || -z $c ]] && break
                                fi
                                out+=$c
                        done
                        echo "  <td>$out</td>"
                        [[ -z $c ]] && break
                        l=${l:i+1}
                else
                        out=${l%%,*}
                        echo "  <td>$out</td>"
                        [[ $l == "$out" ]] && break
                        l=${l#"$out,"}
                fi
        done
        echo " </tr>"
done < "$1"
echo "</table>"

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

Вообще, мы в разделе job. Можешь выставлять ценник, но меньше, чем $100

crutch_master ★★★★★
()

С тебя 50 баксов

sudo apt install csvtool -y
dron@gnu:~$ cat tt.csv 
'toto@hotmail.com', 'toto@hotmail.com', 'totot@hotmail.com', '', 'Toto', 'TOTO PERSO', 'tel', '', 'telmobile', '', '', '', '', '', 1, '2015-04-28 18:00:00', 1, '2015-04-28 18:00:00'
dron@gnu:~$ 

dron@gnu:~$ cat sh.sh
echo "NAME = " `csvtool -t ',' col 5 - < tt.csv`
echo "FAMY = " `csvtool -t ',' col 6 - < tt.csv`
echo "MAIL = " `csvtool -t ',' col 1 - < tt.csv`
echo "FULLINFO_ONELINE =" `csvtool -t ',' col 5,6,1 - < tt.csv`
dron@gnu:~$ 
dron@gnu:~$ ./sh.sh 
NAME =  'Toto'
FAMY =  'TOTO PERSO'
MAIL =  'toto@hotmail.com'
FULLINFO_ONELINE = 'Toto','TOTO PERSO','toto@hotmail.com'
dron@gnu:~$ 

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от vodz

Цены вообще нет, так что можно требовать сколько угодно

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от vodz

В смысле не умеет? Ему надо ф/и/мыло? Он их выцепляет. Если надо из середины, просто вставить сколько надо x:

while read x x x x name x x family x x x email

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

Когда я писал коммент, ты уже прописался =) Ну извини :(

Да и вообще он же и тебе и мне заплетит. Тебе 100 мне 50. Ты чво кипишуешь?

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Если надо из середины, просто вставить сколько надо x:

А, ну если так, я представлял себе, что имена полей в первой строчке и тут уже придётся попотеть.

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

Да поздно уже, публичная оферта… А вдруг я как опсос сначала в дно снижаю цены все ко мне бегут, а потом я набрав базу цену как вжууух! И сё.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от grem

Я иногда делаю cat grep вместо того,чтобы сразу вызвать grep.

Да понятно, что плохие привычки бывают разные, но когда на продажу...

vodz ★★★★★
()

Судя по датам по ссылке, ТС решил свою задачу еще в 2015 году.

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

В том, что выглядеть оно может и вот так:[br] «Schember, John»,«John Schember»,«calibre Quick Start Guide» (напомню: CSV = comma separated values)

anonymous
()

Лучше все-таки небаш. Написал и еб**. Есть же нормальные инструменты, которые сразу получают объект из csv со всеми полями, проиндексированный по вхождениям, который можно изменять как угодно. Рекомендую powershell.

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