Выбирать столбцы из CSV-файла переменной длины

Я предполагаю, что вы используете «find», потому что у вас есть файлы pdf в подкаталогах, или вы просто использовали бы «mv * .pdf ../Documents». Сначала я бы сделал следующее, просто чтобы убедиться, что команда делает то, что я хочу.

найти. -тип f | grep dat $

Затем я бы заполнил оставшуюся часть команды с помощью xargs

find. -тип f | grep dat $ | xargs mv ../Documents

По привычке мне нравится помещать «grep» и «xargs» в конце команд, где я уже знаю результат и что они делают.

1
07.07.2015, 01:14
1 ответ

Чистая оболочка должна работать, если количество столбцов меньше 26:

while IFS=, read a b c d e f g h i j k l m n o p q r s t u v w x y z
do 
    printf '%s,' $b $a $c $d $g $j $m $p $s $v $y
    printf '\b \b\n' 
done < joinedfile.csv

Если есть больше чем 26 столбцов, попробуйте это:

tr, ' ' < joinedfile.csv | 
while read a; do 
    set -- $a
    printf '%s,' $2 $1 $3
    while [ "$4" ] ; do 
        shift 3
        printf '%s,' "$1"
    done
    printf '\b \b\n'
done
0
27.01.2020, 23:50

Теги

Похожие вопросы