Проблема, конечно, состоит в том, что Вы выполняете grep на больших временах файла 10,000. Необходимо считать оба файла только однажды. Если Вы хотите остаться вне языков сценариев, можно сделать это этот путь:
comm
в отсортированных списках для получения, что находится только во втором спискеЧто-то вроде этого:
$ grep -o '^[0-9]\{12\}$' file1 | sort -u -o file1.sorted
$ grep -o '[0-9]\{12\}' file2 | sort -u -o file2.sorted
$ comm -13 file1.sorted file2.sorted > file3
Посмотрите man comm
.
Если Вы могли бы усекать большой файл каждый день (как файл журнала), Вы могли бы сохранить кэш отсортированных чисел и не должны будете анализировать его целый каждый раз.
Я не уверен, что XDG_VTNR вовлекает, но этот сценарий работы для меня, поместите строку в ~/.bashrc
(Я делаю auto-X на tty3),
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty3 ]]; then exec startx; fi
Также определите "не работу", делает она работает, если Вы запускаетесь startx
вручную? В противном случае исследуйте свой ~/.xinitrc сначала.
В .bash_profile
, можно узнать (после того, как автовойдите в систему с getty -a
в /etc/inittab
) какой tty Вы хорошо знаете tty
(если Вы находитесь на самом деле в X, это могло бы быть похожим на это: /dev/pts/1
- это что p
проверка о ниже). Затем установите переменную, чтобы хранить эту информацию; позже, используйте его для запуска X с xinit
.
Необходимо также установить ~/.xinitrc
и ~/.Xresources
; хорошее начало ~/.xinitrc
xrdb ~/.Xresources
- проверьте страницы справочника на все это. Можно найти некоторые примеры здесь.
CURRENT_VT=`tty`
if [[ ${CURRENT_VT[6]} == "p" ]]; then
export VT="X"
else
export VT=${CURRENT_VT: -1:1}
fi
# ... [cut] initialize everything else ...
# OK, done; let's start applications and X depending on where we are
case $VT in
(1) emacs ;;
(5) wait_for_internet
irssi --connect=open.ircnet.net ;;
(6) xinit ;;
(X) ... do X stuff ... ;;
esac
Править
По ошибке я отправил вышеупомянутое zsh код - в синтаксисе удара, это будет несколько походить на это (с резервированием, что это намного менее тестируется, чем код zsh, который работает каждый день на моем компьютере). Остальное неизменно.
CURRENT_VT=`tty`
if [[ ${CURRENT_VT:5:1} = "p" ]]; then
export VT="X";
else
export VT=${CURRENT_VT:${#CURRENT_VT} - 1};
fi
.bashrc
также (когда я изменил синтаксис; посмотрите редактирование) - причина, я думал, что это пойдет туда, то, что у меня есть он в .zshrc
- так или те файлы не являются 100%-й параллелью, или Вы не думаете, что вышеупомянутое принадлежит .zshrc
также - Я сортирую подозреваемого последнего (поскольку существует a .zprofile
), таким образом, было бы интересно знать почему?
– Emanuel Berg
28.01.2013, 03:20
.bashrc
, это инициирует во всех видах нежелательных обстоятельств, таких как рабочий экран или SSH, если это передаст XDG_VTNR
переменная, или в xterm, если Вы сбросили DISPLAY
, и т.д.
– Gilles 'SO- stop being evil'
28.01.2013, 03:22
.zprofile
?)
– Emanuel Berg
28.01.2013, 03:28
.profile
, .login
, .bash_profile
, .zprofile
, …), не интерактивный сценарий запуска (.bashrc
, .kshrc
, .cshrc
, .zshrc
, …).
– Gilles 'SO- stop being evil'
28.01.2013, 03:35
startx
и нет xinit
? Обновленный мой вопрос с другими файлами.
– user905686
31.01.2013, 19:04
startx
вручную работы, обновленный вопрос. – user905686 27.01.2013, 12:27