Я пишу A, если потом иначе проверить на определенное числовое значение в файле

Один из способов:

awk '{$3=$3" | ";print "user | "$0;}' file
-121--242877-

top -b -n 1

От man top :

  -b: работа в пакетном режиме
Запуск сверху в пакетном режиме, который может быть полезен для
отправка выходных данных из верхней части в другие программы или в
файл. В этом режиме top не принимает входные данные и запускает
до тех пор, пока не будет установлено ограничение итераций с '-'
параметр командной строки или до завершения операции.
-121--37670-

Они не являются выражениями, они являются именами файлов, созданных следующим образом:

 printenv | sort > printenv.sorted
 set | sort > set.sorted

Это не ясно из документации, поэтому ваша путаница понятна!

Обратите внимание, что вам может потребоваться помощь diff и grep , заставив их рассматривать свои входные данные как текст (с помощью -a ); переменные среды могут содержать значения, которые заставят их рассматривать свои входные данные как двоичные, что не приведет к чему-либо полезному:

diff -a set.sorted printenv.sorted | grep -a "<" | awk '{ print $2 }'

Еще лучше, используйте comm для сравнения двух файлов:

comm -23 set.sorted printenv.sorted

Можно заменить файлы заменами процессов:

comm -23 <(set|sort) <(printenv|sort)

, чтобы избежать создания файлов.

1
24.09.2018, 19:52
1 ответ

Обратите внимание, что после ifвы помещаете команду . В зависимости от состояния выхода этой команды вы входите в блок thenили блок else. Также обратите внимание, что [— это команда , а не просто синтаксис (в командной строке bash, введите help [, затемhelp test)

Вы хотите

#!/bin/bash
read -p "What is the QID? " qid
file=/home/dc368/zeroday/zerodayresearch
if grep -q "$qid" "$file"; then
    echo qid exists
else 
    echo qid does not exist
fi

Поскольку grep использует регулярные выражения, это может возвращать ложные срабатывания. Например, если qid=., grep возвращает "true", если в файле есть хотя бы один символ. Прочтите man grep, чтобы узнать о расширенных параметрах, которые помогут сузить результаты. (подсказка, рассмотрите варианты -wи -F.

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

1
27.01.2020, 23:42

Теги

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