Установите программу, загруженную в виде файла .tar

Вы неправильно используете функцию system () . Или, скорее, это не то, что здесь использовать, поскольку он не возвращает вывод команды, а только статус выхода (вывод поступает в терминал).

Предполагая, что date - это GNU date , это сценарий awk , который выполнит переформатирование даты:

BEGIN { OFS = FS = "," }

$1 {
    cmd = sprintf("date -d '%s' '+%%d-%%m-%%Y' 2>/dev/null", $1);
    cmd | getline $1;
    print;
    close(cmd);
}

Запуск:

$ awk -f script.awk data.csv
Bogført,Tekst,Beløb,Saldo
03-02-2017, random text,-425,-611524.54

Скрипт отбрасывает пустые строки ввода. Он создает командную строку cmd , которая выполняет фактическое преобразование даты с использованием GNU date . Ошибки от даты будут отброшены (и $ 1 останется без изменений).

Чтобы сделать это с помощью cvssql (из csvkit ):

$ sed '1,2d' data.csv | csvsql -H --query 'SELECT strftime("%d-%m-%Y", a), b, c, d FROM stdin' | sed '1d' >new_data.csv

Данные в new_data.csv будут без строки заголовка. Чтобы добавить его обратно:

$ cat <( head -n 1 data.csv ) new_data.csv >even_newer_data.csv
1
12.12.2017, 11:18
2 ответа
tar -C /usr/local --strip-components 1 -xf xxx.tar.xz
0
30.08.2021, 07:59

Пакеты, не установленные через ваш дистрибутив, относятся к /opt. Так:

sudo bash  # or sudo each command
cd /tmp
tar xvf progname.tar
# use atool's aunpack to guard against tar-bombs
mkdir /opt
mv progname/ opt/

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

ln -s /opt/progname/bin/* /usr/local/bin
ln -s /opt/progname/lib/* /usr/local/lib
ln -s /opt/progname/include/* /usr/local/include
0
30.08.2021, 08:20

Теги

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