Вопросы с меткой [shell]


Вывести в shell строки, не содержащие

Узнать ответ

ответов 2

0

sed -e 's/#.*$//' -e '/^$/d' filename > result

Легкий скрипт который копирует файлы с сегодняшним днем

Ответить

ответов 0

1

Если вам просто нужно проверить существование файла, то это test -e.

0

а если каждый день файл имеет новую временную метку? как с тестом это сделать?

0

Простите, но я так и не смог распарсить, в чём именно задача. Либо подождите комментариев и ответов от других, либо напишите псевдокодом хотя бы, что вам нужно.

0

попробую попроще расписать,за помощь готов вам готов отправить деньги пейпелом

0

Я конечно понимаю, что у вас на аватарке Билл Гейтс, но вообще на СО деньги за ответы, и уж тем более за комментарии, давать не принято :-P Если вам их некуда девать, рекомендую найти благотворительный фонд.

0

попробую попроще расписать,за помощь готов вам готов отправить деньги пейпелом: каждый день учитель загружаеткаждый день список файлов ( их 45 они имеют определенное имя вроде того же STUDENT_SUBSCRIBED_ДАТА и тд,) иногда учитель загружает от одного до 30 файлов - из 45 и нужно недостающие файлы скопирывать с предыдущего дня) все файлы он заливает в /incoming/ а оттуда я вручную перемещаю в /incoming/data-2020318/. Есть ли возможнсоть это сдлеать? З.Ы. Да на пиво тоже самое и ваше время :)

0

cd $NEXT_DATE_FOLDER; find $PREVIOUS_DATE_FOLDER -type f -name "*.xlsx" | while read fprev; do ...convert to new name in some new variable, let's say fnext...; [ -s "$fnext" ] || cp "$PREVIOUS_DATE_FOLDER/fprev" "$fnext"; done. Поддержки пробелов и специальных символов добавить по вкусу. Работы, даже не зная shell, на часа два-три с помощью того же SO.

1

@0andriy, оформи как ответ, а то глаза слезятся.

make вычислить значение в правиле

Узнать ответ

ответов 1

0

В большинстве имплементаций make, включая GNU Make, каждая команда выполняется в отдельном процессе, так что очевидно, что переменные так работать не будут. Либо используйте макросы, либо выносите код команд в отдельный shell-скрипт.

0

@Ainar-G с shell-скриптом тоже проблема. Гуглил, но не то, чтобы очень глубоко и много. Проблему понял. Окей. Буду в shell-script выносить

0

@Ainar-G не получается подставить ответ от скрипта или сам скрипт в код. (обновил вопрос)

0

Эм. Вы какие-то странные вещи делаете. Я говорил вам создать файл, напр. 1.sh, и в вашем make-правиле вызывать его как $(SHELL) ./1.sh.

0

@Ainar-G я нечто подобное тоже делал. Но не зашло. Поэтому вытащил из 1.sh команды и развернул их

0

COMMAND_VAR=$$(sh -c 'cd ~/tmp; ls -l'); \ echo $$COMMAND_VAR прекрасно работает (это две строчки).

Автоматический запуск питон скриптов

Ответить

ответов 0

0

попробуйте в cron прописать сразу find /path/ -maxdepth 1 -name '*.py' -exec python {} \; без создания дополнительного скрипта sh

0

run-parts /path/

Как в Unix с помощью shell посчитать число файлов в подкаталоге?

shell unix

Узнать ответ

ответов 3

3

find ./dir -type f | wc -l?

0

Уточните пожалуйста, как вы понимаете фразу - с помощью shell?

0

@0xdb, возможно автор просто имел ввиду работу в терминале? Лучше конечно было бы уточнить какой именно shell используется - bash / ksh / zsh / tcsh / etc.

Получить return code от программы вначале конвейера

Узнать ответ

ответов 1

0

set -e в скрипте или запуск через интерпретатор с этим ключом: sh -e ...

0

pg_basebackup -x --write-recovery-conf --format=t -z -Z 9 --pgdata=$BACKPATH$($DATE)/pg_basebackup/ сразу сжатый бакуп

0

С помощью чего будет сжиматься бэкап при таких ключах?

0

С помощью zlib, очевидно.

0

Разве zlib может работать параллельно? pigz именно с этой целью и используется

Как искать используя команду locate?

Узнать ответ

ответов 1

0

насчет почему не просматривает и возможное решение stackoverflow.com/questions/15887431/…

0

А я правильно понимаю что эта команда осуществляет поиск по базе данных, которая была создана в момент "установки" этой команды? Если на момент создания этой базы данных файла не было на компьютере то и найти его она не может- нужно обновлять эту БД?

0

просто при наборе locate у меня на макоси 10.15.2 выдает default database: /var/db/locate.database' or $LOCATE_PATH`, но если ее нет, то нужно создать как указано например здесь osxdaily.com/2011/11/02/…

0

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

Имя файла относительно папки в bash shell

Узнать ответ

ответов 1

0

find dir -printf '%P\n' | grep .txt

0

@karaname а можно пожалуйста поподробней куда это ставить в скрипте?

0

@karaname, +1. Можно find дополнить аргументами -type f -name \*.txt и обойтись без 'grep'a

Как закрыть Python 3.7.1 Shell?

shell python

Узнать ответ

ответов 1

0

Вот так закрыть: quit()

0

Можешь добавить скрипт того как запускаешь? И как из скрипта выходишь?

0

После quit(), появляется сообщение do you want kill it?

0

Попробуйте посмотреть здесь, объясняется довольно подробно: stackoverflow.com/questions/19747371/…