Как получить 2 различных результата из 1 файла в Unix?

Вы можете сделать что-то вроде:

awk '{print}
     $0 == "<dict>" && previous == "<key>servers</key>" {
       system("cat other-file.xml")
     }
     {previous = $0}'
1
26.11.2014, 19:36
2 ответа

, который будет зависеть от того, как содержимое расположено в этом файле, однако вы просто должны отслеживать, открыл ли вы этот файл в сценарии.

# Example where the first time opening, line 1 is printed, and subsequent times
# line 2 is printed
file_opened=0
# ... code
if [ $file_opened -eq 0 ]; then
    # code for first time opening, e.g.:
    head -1 the_file.txt # Prints line 1
    file_opened=1
else
    # code for subsequent times, e.g.:
    sed -n '2{p;q}' the_file.txt # Prints line 2
 fi
0
27.01.2020, 23:51

Вы можете использовать $ случайным переменную переменную в виде скриптов Bash, чтобы получить что-то другое, которое вы его называете. Он возвращает целые числа (0-32767), но вы могли бы проверить, есть ли номера даже или странные, а затем сделать это в да или нет.

$ echo $RANDOM
2104

$ echo $RANDOM
25188

Даже / нечетный пример

$ if (( RANDOM % 2 )); then echo even; else echo odd; fi
even
$ if (( RANDOM % 2 )); then echo even; else echo odd; fi
even
$ if (( RANDOM % 2 )); then echo even; else echo odd; fi
odd

Вышеупомянутое использование оператора по модулю, чтобы разделить в настоящее время $ Случайный , на 2. Если $ случайно даже, то мы эхо Сообщение, «Даже», в противном случае мы откроем «странно».

Это может быть адаптировано к опции «Да» или «Нет», которую вы можете использовать в вашем скрипте.

Ссылки

1
27.01.2020, 23:51

Теги

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