Переменная ENV Dpkg DPKG_HOOK_ACTION не установлена в сценарии рычага

Используя sed можно сделать что-то вроде,

for f in *.csv
do
 sed -i 's/$/ '"$f"'/' "$f"
done

Тестирование

В одном из каталогов я создал пару csv файлов.

cat csv1.csv

this
is
first
csv
file

##Second CSV file

cat csv2.csv

this
is
second
csv
file

Теперь я выполнил вышеприведенную команду, о которой упоминал. После выполнения команды файлы выглядят следующим образом.

cat csv1.csv

this csv1.csv
is csv1.csv
first csv1.csv
csv csv1.csv
file csv1.csv

##Second CSV file

cat csv2.csv

this csv2.csv
is csv2.csv
second csv2.csv
csv csv2.csv
file csv2.csv

Если вам нужна точка с запятой , вы можете просто добавить ее в команду sed перед добавлением имени файла. Измените команду sed, как показано ниже.

 sed -i 's/$/ '";$f"'/' "$f"

Ссылки

http://www.unix.com/unix-for-dummies-questions-and-answers/150545-merge-files-add-file-name-end-each-line.html

1
10.12.2014, 11:32
2 ответа

Это относится только к командам, указанным в - предварительно вызовов и - параметры Post-Invoke , а не при установке команд в конфигурации.

Это можно продемонстрировать, помещая команду echo в скрипт:

# cat > /tmp/pre-invoke.sh <<'EOF'
#!/bin/sh
echo This is testhook. Current action is $DPKG_HOOK_ACTION; exit 0
EOF
# chmod +x /tmp/pre-invoke.sh
# dpkg --pre-invoke=/tmp/pre-invoke.sh -i /var/cache/apt/archives/rsync_3.1.1-2+b1_amd64.deb
This is testhook. Current action is install
(Reading database ... 113857 files and directories currently installed.)
Preparing to unpack .../rsync_3.1.1-2+b1_amd64.deb ...
Unpacking rsync (3.1.1-2+b1) over (3.1.1-2+b1) ...
Setting up rsync (3.1.1-2+b1) ...
Restarting rsync daemon: rsync.
Processing triggers for man-db (2.6.7.1-1) ...
2
27.01.2020, 23:37

Это поведение также можно настроить с помощью DPKg::Options::вместо (Вуртел объяснил, почему DPkg::Pre-Invokeнаходится не в том месте):

Вот пример из apt.confс демонстрационным скриптом:

DPKg::Options:: "--pre-invoke=/tmp/pre-invoke.sh";

Результаты, например,.:

After this operation, 17.4 kB disk space will be freed.
This is testhook. Current action is remove
This is testhook. Current action is remove
(Reading database... 60383 files and directories currently installed.)

Новый ответ, так как я не могу комментировать [пока, из-за репутации]

2
14.07.2020, 13:16

Теги

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