найти вставку xargs в несколько файлов csv - PullRequest
1 голос
/ 13 июля 2020

Я хотел бы объединить файлы csv по горизонтали, например

cat file1.csv
val1;val2;
cat file2.csv
val3;val4

, и получить следующий результат:

val1;val2;val3;val4

Команда вставки идеально подходит, и это работает:

paste file1.csv file2.csv > file3.csv

Я хочу сделать это в скрипте. На практике у меня есть файлы, сгруппированные по префиксу, и я хотел бы сделать следующее:

    for (( i = 0; i < "${#group_by[@]}"; i++ )); do
        echo "sorting results of ${group_by[$i]} commands"
        find $DEST_PATH -type f -name "sorted_${group_by[$i]}.csv" -exec paste '{}' > $DEST_PATH/RESULT.csv \;
        #done
    done

Итак, файлы csv объединяются по префиксу.

Это тоже не работает:

find . -type f -name "prefix*.csv" | xargs -I{} paste '{}' > result.csv

потому что файлы объединяются по вертикали:

cat result.csv
val1;val2;
val3;val4;

Как этого можно достичь аналогичным образом?

1 Ответ

1 голос
/ 13 июля 2020

Вы можете использовать это с опцией -n 2 в xargs:

find . -type f -name "prefix*.csv" -print0 |
xargs -0 -n 2 paste -d ''
val1;val2;val3;val4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...