Если количество уникальных элементов в file2
не слишком велико, то приемлемым решением может быть классический подход обработки обоих файлов с помощью awk
, сначала создание массива уникальных элементов в столбце 1 file2
, а затем проверка столбца 1 file1
на членство в массиве, т.е.
awk 'FNR==NR {a[$1]++}; FNR!=NR && a[$1]' file2 file1
Эквивалентный подход с использованием bash 4+
ассоциативных массивов может быть что-то вроде
#!/bin/bash
declare -A a
while read col1 _ ; do
((a[$col1]++))
done < file2
while IFS= read -r line; do
# compare only with 1st column of second file
read -r col1 _ <<< "$line"
[[ -n "${a[$col1]}" ]] && printf "$line\n"
done < file1
Да есть хоть эта четверка (пятерка? )способы:
AltGr
Сделайте свою раскладку клавиатуры English (international AltGr dead keys)
.
Затем правая клавишаAlt — это клавиша AltGr . Нажатие AltGr-m сгенерирует µ. Многие другие клавиши также генерируют другие символы :AltGr -для ß
и Shift -AltGr -для §
.
Существует отдельная раскладка клавиатуры для консоли (настоящей консоли на AltCtrlF1 до F6)и одна для графического интерфейса в X Изменение любого из них зависит от вашего дистрибутива (CentOS, Fedora, Debian и т. д. )и Диспетчера отображения (gnome, kde, xfce и т. д. ). Например, установка xfce4-xkb-plugin
позволит с помощью кнопки на панели настроить клавиатуру и переключаться между несколькими раскладками клавиатуры для X в XFCE.
Написать
Сделайте какую-нибудь клавишу клавишей Compose . Затем, нажав Compose , отпустив ее, нажав / , отпустив ее, а затем u сгенерирует µ.
Определение клавиши Compose
обычно выполняется с помощью xkb
или апплета раскладки клавиатуры.
Например, в Gnome обычно доступно в разделе «Регион и язык» или, может быть, Простое переключение раскладки клавиатуры .
Юникод
Существует общий способ ввода любого символа Unicode (, если ваша консоль поддерживает его ). Да, любая кодовая точка из 1 111 998 возможных символов(видна, если ваш шрифт (s )может их нарисовать ). Нажмите, как один аккорд (одновременно)ShiftCtrlu , отпустите их (Вероятно, появится подчеркнутый u̲ ), затем введите b5
, который кодовая точка Unicode (всегда в шестнадцатеричном формате )для символа. И чтобы закончить, введите пробел или введите (хотя бы ).
Строка чтения
В приглашении bash (, поскольку вы отметили вопрос ), можно использовать readline для создания µ(mu
).
bind '"\eu": "µ"'
Или добавьте строку:
"\eu": "µ"
до ~/.inputrc
, прочитайте его с помощью Alt-xAlt-r или запустите новую оболочку bash (выполнитеbash
)и когда вы наберете:
Альт-u
Появится µ
.
Метод ввода
Наверное, слишком много для такого короткого ответа.
Ошибка :Технически символ, запрошенный в вопросе, был Unicode \U3bc
, в то время как этот ответ предоставил решения для \Ub5
. Да, они разные, моя ошибка, извините.
$ unicode $(printf '\U3bc\Ub5')
U+03BC GREEK SMALL LETTER MU
UTF-8: ce bc UTF-16BE: 03bc Decimal: μ Octal: \01674
μ (Μ)
Uppercase: 039C
Category: Ll (Letter, Lowercase)
Unicode block: 0370..03FF; Greek and Coptic
Bidi: L (Left-to-Right)
U+00B5 MICRO SIGN
UTF-8: c2 b5 UTF-16BE: 00b5 Decimal: µ Octal: \0265
µ (Μ)
Uppercase: 039C
Category: Ll (Letter, Lowercase)
Unicode block: 0080..00FF; Latin-1 Supplement
Bidi: L (Left-to-Right)
Decomposition: <compat> 03BC
И технически единственными допустимыми решениями являются числа 3 и 4. В 3 номер Unicode можно изменить с b5
на 3bc
, чтобы получить даже этот греческий символ. В 4 просто скопируйте правильный символ и готово.
b5
и 3bc
имеют в качестве верхнего регистра 39c
. Итак, оба являются строчными буквами MU. AltGr
Это вполне возможно и уже сделано путем изменения AltGr -g (с xkb )на:
key <AC05> { [ g, G, dead_greek, dead_greek ]};
Затем введите AltGr-g m
, чтобы получить истинно греческий -mu.
Написать
Таблица Compose неверна, даже греческий файл Compose (/usr/share/X11/locale/el _GR.UTF -8/Compose )списки:
<Multi_key> <slash> <u> : "µ" mu
<Multi_key> <u> <slash> : "µ" mu
<Multi_key> <slash> <U> : "µ" mu
<Multi_key> <U> <slash> : "µ" mu
Те составы, что и Greek
, которыми они не являются.
Правильным решением для компоновки является включение ~/.XCompose для греческого языка и перезагрузка.
Юникод
Работает как опубликовано, с номером Unicode3bc
Строка чтения
Работает как опубликовано, измените эффективный символ на любой желаемый.
Если вы активируете клавишу ввода , вы можете напечатать этот символ с помощью последовательности compose/u , например :µ
Полный набор доступных символов и соответствующих им последовательностей клавиш задокументирован на вики Ubuntu .
Методы ввода файла CIN -можно использовать в X11 и в моих пользовательских -пространственных виртуальных терминалах. Один из обычно собираемых -, greek.cin
, имеет характер мю. Просто введитеm
(в нижнем регистре ), и это единственное преобразование.
Можно изменить greek.cin
, чтобы добавить микро, обеспечивая второе преобразование, хотя визуально это будет довольно запутанно, затрудняя выбор правильного во время выбора преобразования, если они оба сопоставляются с m
. Лучшее преобразование будет отображать micro
в U+00B5 :
micro μ
Ваша раскладка клавиатуры X11 или ваш виртуальный терминал могут не реализовывать это, но если это так, то существует стандартная для страны -независимая клавиша последовательность(из два аккорда клавиш )для символа мю, определенного в ISO/IEC 9995:и #x21e8; Группа 2 Выберите B07
Там, где это реализовано,эта так называемая -, называемая общей вторичной группой стандарта ISO/IEC 9995, не должна зависеть от макета выбранной страны и всегда доступна.
Однако не существует общей последовательности вторичной группы для символа микропрефикса.
Специфика раскладок клавиатуры выходит за рамки этого ответа, и здесь есть много ответов, касающихся их.
Существует раскладка клавиатуры для приложений X11, возможно, есть связанная раскладка клавиатуры для виртуальных терминалов ядра (, если она есть в вашей операционной системе ), и существуют раскладки клавиатуры для пользовательских -пространственных виртуальных терминалов (, если вы используете такой ). Макеты обычно предоставляют такие символы, как аккорд с и #x21e7; Сдвиг 2 уровня или и #x21ee; Уровень 3 Shift в сочетании с основной клавишей клавиатуры.
Некоторые раскладки клавиатуры X11 дополнительно определяют (как необязательное дополнение )клавишу сочинения , которая начинает последовательность клавиш (из нескольких клавишных аккордов ), которые соответствуют таким символам. В обычном наборе композиций X11, задокументированном Дэвидом Моннио несколько лет назад , символ mu представляет собой последовательность ComposeMU или последовательность Compose/У . Обратите внимание, что он объединяется с символом префикса микро.
Обратитесь к картам клавиатуры VT и X11, чтобы узнать, какие аккорды отображаются, если таковые имеются. Проверьте свою конфигурацию, чтобы убедиться, что вы включили опцию создания ключа в X11.
ch
, de
, it
, nl
,и no
раскладки клавиатуры виртуального терминала в FreeBSD предоставляют символ mu как аккорд и #x21ee; Уровень 3 Shift +B07(M):
% sed -n -e '2,5p;/0xb5/p' /usr/share/vt/keymaps/de.kbd /usr/share/vt/keymaps [pts/4.10009.1] # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt shift cntrl shift state # ------------------------------------------------------------------ 050 'm' 'M' cr cr 0xb5 0xb5 cr cr C %
Но другие карты либо не имеют его, либо определяют другую хорду. В раскладке клавиатуры fr
это и #x21e7; Уровень 2 Shift +C12 (ЕВРОПА1):
% sed -n -e '2,5p;/0xb5/p' /usr/share/vt/keymaps/fr.kbd /usr/share/vt/keymaps [pts/4.10011.1] # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt shift cntrl shift state # ------------------------------------------------------------------ 043 '*' 0xb5 nop nop '#' '~' nop nop O %
И вообще не отображается в раскладке клавиатуры uk
. Ни один из них не имеет префиксного символа микро.
Другие методы относятся к библиотекам обработки ввода приложений или к определенным эмуляторам терминала, тогда как методы ввода и раскладки клавиатуры X11/VT не зависят от приложения -.
Некоторые эмуляторы терминала предоставляют другие способы ввода символов по их кодовым точкам Unicode. Конечно, Readline можно настроить для отображения входных последовательностей на этот символ, как и ZLE. И вы уже упомянули VIM в вопросе.