Как сделать тестовые данные для полной длины определения?

Вы можете скопировать все содержимое каталога с помощью:

cp -p -r /home/name123/* /local/name123/

-p для сохранения разрешений и -r для рекурсивного копирования папок и всего, что внутри них ()Вам нужны права суперпользователя, чтобы установить новый домашний каталог для пользователя name123:

usermod -d /local/name123 name123
-3
03.04.2021, 20:50
1 ответ

Этот awk генерирует строки переменной -длины.

#! /bin/bash

Str () {

    Awk='
function Str (v, n, Local, x) {

    x = sprintf ("%*s", n, "");
    gsub (/./, v, x);
    return (x);
}
{ printf ("%s|%s|%s|\n", Str( "x", 12), Str( "u", 15), Str( "p", 8)); }
'
    echo | awk "${Awk}"
}

    Str

$./Str
xxxxxxxxxxxx|uuuuuuuuuuuuuuu|pppppppp|
$ 

Это не особенно эффективно для больших файлов. Он может предварительно -сгенерировать, скажем, массив из 26 строк по 1000 символов в разделе BEGIN, а затем распечатать подразделы этих строк в формате %.*s, используя требуемую длину и индекс для нужной буквы. Затем он может считывать отдельные входные спецификации для таких строк, как 20 d 16 z 42 q, чтобы адаптировать каждую строку к вашим требованиям. Подобно этому (проверено на GNU/awk 4.1.4, результаты не показаны):

#! /bin/bash

Str () {

    Awk='
BEGIN {
    Sep = "|";
    split ("abcdefghijklmnopqrstuvwxyz", C, "");
    for (j in C) X[C[j]] = Str( C[j], 1000);
}
function Str (v, n, Local, x) {

    x = sprintf ("%*s", n, "");
    gsub (/./, v, x);
    return (x);
}
{ 
    for (f = 1; f < NF; f += 2) {
        printf ("%.*s%s", $(f), X[$(1 + f)], Sep);
    }
    printf ("\n");
}
'
    awk "${Awk}"
}

    Str <<'EOF'
12 x 15 u 8 z 
6 y 12 q
EOF

Не совсем понимаю, при чем здесь Excel. Если вам нужны результаты в Excel, вам нужно будет импортировать их в формате CSV.

0
28.04.2021, 22:54

Теги

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