Xargs RM не работает при запуске его в скрипте как часть Core_Pattern

Для любого фиксированного упорядочивания вызовов (a, b, c, d в вашем примере) вы можете использовать, например, программу awk , подобную этой, чтобы выполнить задача:

awk -v order=',a,b,c,d' '

BEGIN {
    OFS = FS = "\t"
    n = split(order,ord,",")
    for (i=1; i<=n; i++) ind[ord[i]] = i
}
FNR==1 {
    for (i=2; i<=n; i++) prm[ind[$i]] = i
}
{
    out[$1] = sprintf("%s", $1)
    for (i=2; i<=n; i++) {
        out[$1] = out[$1] sprintf("%s%s", OFS, $prm[i])
    }
    out[$1] = out[$1] sprintf("%s%s", OFS, $NF)
}
ENDFILE {
    for (i=1; i<=n; i++) print out[ord[i]]
    print out[$1] ORS
}

' a.csv b.csv c.csv

Примечание. Этот код предполагает наличие последней версии (4.x) GNU awk из-за условия ENDFILE . (Если это недоступно, решение требует корректировки.)

Примечание 2: Если вы хотите обрабатывать файлы индивидуально (один файл данных на вызов awk ), вы можете заменить ENDFILE ] от END (который также будет работать в более старых awk s).

Результаты для ваших образцов данных:

    a   b   c   d   x
a   1   2   5   3   3
b   2   2   5   5   2
c   5   5   6   6   5
d   2   3   4   4   6
x   3   1   7   6   9

    a   b   c   d   y
a   6   4   4   6   2
b   3   2   4   6   4
c   6   6   2   5   5
d   5   6   3   2   3
y   7   6   3   5   9

    a   b   c   d   z
a   3   5   3   5   2
b   3   6   2   6   7
c   5   6   4   6   1
d   7   7   4   5   2
z   5   4   3   6   7
1
23.09.2018, 23:26
1 ответ

ls -tr /tmp/coresне перечисляет полные пути к файлам, а только их базовые имена.

Вместо этого попробуйте ls -tr /tmp/cores/* |....

Но вам все это не нужно --, так как все имена файлов имеют видcore.%t(%t= unix time of dump ),вы можете просто положиться на glob для их сортировки. Кроме того, не имеет смысла удалять 10 файлов после того, как вы добавите всего один --после нескольких шагов, вы останетесь без файлов в каталоге.

#! /bin/sh
cat > "$1"
# remove the oldest file if there are more than 100 
cleanup(){ test "$#" -gt 100 && rm "$1" }
cleanup /tmp/cores/*
2
27.01.2020, 23:31

Теги

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