Пользовательская подсказка/вход сценария оболочки

Похоже, что простой drop будет работать для того, что вы хотите:

df1.drop(df2.index, errors='ignore', axis=0)

     col1  col2
ID            
1      9     5
2      8     4

Обратите внимание, что это предполагает, что ID является индексом, в противном случае используйте [ 114] :

df1[~df1.ID.isin(df2.ID)]

    ID  col1  col2
0   1     9     5
1   2     8     4

7
задан TRiG 2 May 2017 в 09:23
поделиться

3 ответа

Если Вы хотите быть предложенными (в противоположность передаче даты в в качестве параметра), используйте следующую логику (или что-то подобное):

date=
while [ -z $date ]
do
    echo -n 'Date? '
    read date
done

Тот цикл продолжит запрашивать дату, пока пользователь не введет что-то (ничто) кроме простого ВОЗВРАТА.

Если Вы хотите добавить некоторую простую проверку, и Вы используете версию KSH, это - KSH93 или лучше, сделайте что-то вроде этого:

date=
while [ -z $date ]
do
    echo -n 'Date? '
    read date
    if [[ $date =~ ^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,4}$ ]]
    then
        break
    fi
    date=
done

См. ksh93 страницу справочника для большего количества информации.

18
ответ дан 6 December 2019 в 07:52
поделиться

В целом из сценария оболочки как параметры командной строки можно получить доступ:

$0, $1, ... $N

Таким образом, Вы могли заменить hardcoded дату как:

./room_xls.pl $1

И выполненный это как

./myscript 1/12/09
3
ответ дан 6 December 2019 в 07:52
поделиться

1$ является первым параметром командной строки. Это подходит к 9$. Проверьте это учебное руководство на более основной ksh синтаксис.

2
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

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