создать временный файл в сценарии оболочки - PullRequest
0 голосов
/ 08 мая 2020

Я пишу сценарий оболочки, в котором я извлекаю данные из файла журнала и создаю выходной файл в формате csv (например, output.csv), который мне подходит. Теперь мое требование заключается в том, что при извлечении данных из файла журнала сценарий должен записывать данные во временный файл (например, sample.temp), а после завершения перемещать его в output.csv, а затем удалять сгенерированный временный файл. Пожалуйста, помогите достичь этого.

1 Ответ

0 голосов
/ 08 мая 2020

Команда mktemp даст вам временные имена файлов для работы, которые выглядят как /tmp/tmp.B5oqPG0jCu. Вы можете переопределить целевой каталог с помощью аргумента --tmpdir (например, mktemp --tmpdir=/home/user/theirtmp) или добавить суффикс (mktemp --suffix=.csv).

Это всего лишь имя, поэтому вы можете сделать что-то вроде этого.

#!/bin/sh
tmpfile=$(mktemp --suffix=.dat)
head -1 /dev/random > $tmpfile # just filling the file with garbage, here
mv $tmpfile output.csv

При перемещении он уже получает оригинал, но вы также можете (очевидно) выгрузить файл содержимое в другой файл (cat $tmpfile >> output.csv), а затем удалить его (rm $tmpfile) вместо .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...