Один из способов:
awk '{$3=$3" | ";print "user | "$0;}' file
-121--242877- top -b -n 1
От man top
:
-121--37670--b: работа в пакетном режиме Запуск сверху в пакетном режиме, который может быть полезен для отправка выходных данных из верхней части в другие программы или в файл. В этом режиме top не принимает входные данные и запускает до тех пор, пока не будет установлено ограничение итераций с '-' параметр командной строки или до завершения операции.
Они не являются выражениями, они являются именами файлов, созданных следующим образом:
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)
, чтобы избежать создания файлов.
Обратите внимание, что после 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. Они могут вызвать проблемы, если вы не будете осторожны. Лучше всего избегать их использования.